ich eine Suchanfrage wie diese:Laravel - vorbei Array von Spalten in ‚where‘ -Klausel
$data = User::where('first_name', 'like', '%'.$query.'%')
->orWhere('last_name', 'like', '%'.$query.'%')
->get();
Nun, ich habe viele Modelle, die jeweils mit unterschiedlichen Spaltennamen. Statt eine search()
Funktion in jeden Controller definieren, möchte ich dies tun:
// User
public static function searchableFields()
{
return ['first_name', 'last_name'];
}
// Some other model
public static function searchableFields()
{
return ['name', 'description'];
}
Und legen Sie die Suchlogik in einem gemeinsamen Controller, etwa wie folgt:
$data = $classname::
where($classname::searchableFields(), 'like', '%'.$query.'%')
->get();
Wie kann ich das erreichen?
Vielen Dank.
In der Regel können Spaltennamen keine Parameter in der Abfrage sein, nicht ohne dynamisches SQL. Warum sind einige Spalten ein Problem für Sie? –