Ich habe diese beiden Tabellen mit den Namen posts
und events
, beide Tabellen sind überhaupt nicht verwandt und ich möchte Benutzer aus diesen beiden Tabellen mit einem einzigen Suchformular suchen können. Hier ist, was ich bisher habe:Suche Datensätze in mehreren Tabellen aus einem einzigen Suchformular
public function search(Request $request) {
$input = trim($request->input('q'));
$keywords = strtolower($input);
$keywordArr = explode(' ', $keywords);
if (!empty($keywords)) {
foreach($keywordArr as $key) {
$posts = Post::where('title', 'LIKE', '%' . $key . '%')->get();
$events = Event::where('title', 'LIKE', '%' . $key . '%')->get();
}
return view('search/results', compact('posts','events','keywords'));
}
return redirect()->back();
}
Diese Methode funktioniert nicht wie erwartet. Wenn beide Tabellen über Datensätze verfügen, die mit den Keywords der Benutzer übereinstimmen, gibt diese Methode nur das Ergebnis aus der Tabelle events
zurück. Wie löse ich das? das ist alles und danke!
Versuchen Laravel durchsuchbare https://github.com/nicolaslopezj/searchable –
will ich kein Paket verwenden, wenn möglich @HasibMahmud –
'$ posts, $ events' Array sein müssen, wenn man sie nach innen' foreach setzen '. –