2017-01-21 3 views
0

Ich bin auf Suchfunktion arbeitet, i auf der Benutzereingabe basiert bin abfragt, aber ich bin nicht das Ergebnis bekommen, wie erwartet% wie% Abfrage nicht Ergebnis geben wie erwartet

//if user searches walter getting proper response 

http://localhost:8000/api/v1/search/walter 

{ 
    "data": [ 
    { 
     "id": 1, 
     "first_name": "Walter", 
     "last_name": "White", 
     "phone_number": "9665885542", 
     "registration_id": "12345b67892" 
    }, 
    { 
     "id": 8, 
     "first_name": "Mitty", 
     "last_name": "Walter", 
     "phone_number": "8826835542", 
     "registration_id": "dffdfg54ty45y" 
    } 
    ] 
} 

// but if user searches walt the response is 

http://localhost:8000/api/v1/search/walt 

{ 
    "data": [] 
} 

meine Methode

// search Treiber public function getSearchResults ($ search_input) {

$search_drivers = Driver::where('id', 'like', $search_input) 
       ->orWhere('first_name', 'like', $search_input) 
       ->orWhere('last_name', 'like', $search_input) 
       ->orWhere('phone_number', 'like', $search_input) 
       ->orWhere('registration_id', 'like', $search_input) 
       ->select('id','first_name','last_name','phone_number','registration_id') 
       ->get(); 

return Response::json([ 
    'data' => $search_drivers 
]);  

}

gibt es eine bessere Möglichkeit, um Ergebnisse zu erhalten, bevor die volle Daten

Eingabe danke

Antwort

1

Die korrekte Syntax für like ist '%'.$search_input.'%':

$search_drivers = Driver::where('id', 'like', '%'.$search_input.'%') 
    ->orWhere('first_name', 'like', '%'.$search_input.'%') 
    ->orWhere('last_name', 'like', '%'.$search_input.'%') 
    ->orWhere('phone_number', 'like', '%'.$search_input.'%') 
    ->orWhere('registration_id', 'like', '%'.$search_input.'%') 
    ->select('id','first_name','last_name','phone_number','registration_id') 
    ->get(); 
+1

mein schlecht, ich danke Ihnen so sehr wirklich zu schätzen es, ich kippe akzeptiere die Antwort in 6 Minuten sagt stackoverflow –

Verwandte Themen