2017-06-11 25 views
0

Was ist der beste Weg, um Query-Strings in einer SQL-Abfrage in Laravel anzuwenden?Was ist der beste Weg, um Query-Strings in der Datenbankabfrage in Laravel anzuwenden?

Zum Beispiel haben wir example.com/posts?name=param1&number=param2&search=param3 und so weiter ..

ich auf diese Weise bin mit aber ich weiß, dass dies nicht Standard ist und die nette Art und Weise

Stellen Sie sich vor ich eine Datei auf Datenbank durchsuchen möchten:

//all files ! 

    $data = [ 
     'files' => File::orderBy('id','desc')->paginate(12), 
    ]; 

    // add query string to limit search or .. 
    if (!empty($request->search)) { 

     $replacement_data = [ 
      'files' => File::where('name','LIKE',"%$request->search%")->paginate(12), 
     ]; 

     return view ("manage.Files.index")->withData(array_replace($data,$replacement_data)); 

    } 

    else { 
     return view ("manage.Files.index")->withData($data); 
    } 
+0

Tive Verwenden Laravel der Anforderungsdaten –

Antwort

1

Sie können Ihre Abfrage dynamisch generieren. Die Art und Weise, wie ich in meinem Projekt vorging, ist die Dependency-Injection der Model-Klasse.

private $model; 

public function __construct(File $model) 
{ 
    $this->model = $model; 
} 

public function search(Request $request) { 

    $query = $this->model; 

    // add query string to limit search or .. 
    if (!empty($request->search)) { 
     $query = $query->where('name','LIKE',"%$request->search%"); 
    } 

    $data['files'] = $query->orderBy('id','desc')->paginate(12); 

    return view ("manage.Files.index")->withData($data); 

} 
+0

Ich denke, das mehr bessere ist Abfrage $ = $ query-> where ('name', zu filtern Dateien durch 'LIKE', "%". $ Request-> get ('search', null). "%"); –

+0

Wenn der Suchbegriff in der Anfrage nicht übergeben wird, bedeutet das nicht, dass der Benutzer nach 'null' suchen möchte. Ihre Abfrage wird falsche Ergebnisse zurückgeben, anstatt alle Dateien zurückzugeben. – ayip

+0

In Ihrem Fall wird auch der Wert leer, wenn in der Suche nichts eingegeben wird –

Verwandte Themen