2016-05-19 18 views
3

Ich möchte eine benutzerdefinierte Suche auf meiner Website vornehmen. HierLaravel 5.2 - Suchfunktion

ist MySQL Suche:

SELECT * FROM MyDB. MyTable WHERE (id LIKE '% MySearch%' OR firstname LIKE '% MySearch%' OR lastname LIKE '% MySearch%' OR email LIKE '% MySearch%' OR address LIKE '% MySearch%');

Wie kann ich diese Suche in meinen Laravel Controller bekommen?

$ benutzer = DB :: tabelle ('MyTable') -> wo ('vorname', 'MeineSuche') -> get();

My Laravel Controller

Vielen Dank im Voraus!

+0

die Antwort am Ende korrekt ist (ich war eine vollständige lange Antwort zu schreiben, aber er war der erste, und ich möchte nur erwähnen, warum Sie verwenden $ _POST? Ich denke, es ist besser, die Anfrage zu verwenden, es ist mehr Laravel Weg (beide sind richtig, nur ein Hinweis) –

Antwort

0

für Laravel 5.2:

$search = '%'.$_POST['name'].'%'; 

$users = DB::table('MyTable') 
     ->where('id', 'LIKE', $search) 
     ->orwhere('firstname', 'LIKE', $search) 
     ->orwhere('lastname', 'LIKE', $search) 
     ->orwhere('email', 'LIKE', $search) 
     ->orwhere('address', 'LIKE', $search); 
     ->get(); 

Es funktioniert!

2
$users = DB::table('MyTable') 
     ->where('id', 'LIKE', '%MySearch%') 
     ->or_where('firstname', 'LIKE', '%MySearch%') 
     ->or_where('lastname', 'LIKE', '%MySearch%') 
     ->or_where('email', 'LIKE', '%MySearch%') 
     ->or_where('address', 'LIKE', '%MySearch%'); 
     ->get(); 
+0

Danke! Es ist wirklich nah an der Antwort! Ich habe es geschafft! –

0

Sie können

$users = DB::table('users') 
       ->where('firstname', 'like', 'John%') 
       ->orWhere('lastname', 'John') 
       ->get(); 
wie unten Abfragen mit ‚orWhere‘ bauen Sie beziehen sich auf dieses Dokument, bevor Sie Ihre Anfragen zu bauen. https://laravel.com/docs/5.2/queries

0

Dieses auch für mich 5.2 in Laravel arbeitet

$search = '%'.$request->search.'%'; 
    $result = DB::table('tours')->where('name', 'like', $search)->get();