2017-06-11 5 views
0

ich versuche, diese Abfrage auszuführen, aber es findet nicht events.id, gibt tatsächlich die Zeichenfolge "events.id" zurück.Larawel Raw Abfrage - Ausführen dieser Abfrage wählt nicht ID

$events = \DB::select(\DB::raw("select 'events.id', `publish_date`, `event_name`, `information`, `latitude`, `longitude`, 111.045 * DEGREES(ACOS(COS(RADIANS(?)) 
        * COS(RADIANS(`latitude`)) 
        * COS(RADIANS(`longitude`) - RADIANS(?)) 
        + SIN(RADIANS(?)) 
        * SIN(RADIANS(`latitude`)))) 
        AS `distance_in_km` 
        FROM `events` as `tbl` 
        where (`publish_date` between ? and ?) 
        and (`event_name` like ? or `information` like ?) 
        and (`paid` = 1) 
        having (`distance_in_km` <= ?) 
        ORDER BY `distance_in_km` ASC 
        LIMIT ?,?"), array($lat, $lng, $lat, $date_from, $date_to, $search_term, $search_term, $distance, $page, intval($page)+20)); 

Dies ist die Antwort, wenn ich

"return dd ($ event)"

array:14 [▼ 
    0 => {#221 ▼ 
    +"events.id": "events.id" 
    +"publish_date": "2017-05-31" 
    +"event_name": "asdfasdfas" 
    +"information": "sdfgsdfgs" 
    +"latitude": 34.6921597 
    +"longitude": 5.0225571 
    +"distance_in_km": 1.4213115203631 
    } 
    1 => {#93 ▶} 
    2 => {#225 ▶} 
    3 => {#222 ▶} 
    4 => {#224 ▶} 
    5 => {#226 ▶} 
    6 => {#227 ▶} 
    7 => {#228 ▶} 
    8 => {#229 ▶} 
    9 => {#230 ▶} 
    10 => {#231 ▶} 
    11 => {#232 ▶} 
    12 => {#233 ▶} 
    13 => {#234 ▶} 
] 

(i muß angeben, die Tabellennamen, da die tatsächliche Abfrage ausgeführt ein bisschen anders mit einem inneren Join)

+1

Wenn Sie 'events' tabelle als 'tbl' bezeichnen, sollten Sie nicht auch id als' tbl.id' auswählen? –

+0

Danke, das war genau das Problem. – DomeWTF

Antwort

1

Sie verwenden die falschen Anführungszeichen rund events.id ...

$events = \DB::select(\DB::raw("select `events.id`, `publish_date`, 

Sie haben das Literal 'events.id' ausgewählt.