Вы можете использовать методы whereRaw
и orWhereRaw
в Eloquent Builder, чтобы использовать необработанные выражения, сохраняя при этом возможность получать экземпляры модели в результате.
Преимущество заключается в том, что вы все равно можете использовать параметр PDO связывание и, следовательно, избегать SQL инъекций, хотя $searchTerm
.
. Вы также можете узнать больше о необработанных выражениях в документации ;
// Assuming $searchTerm contains the term that you need to search the database for
$users = User::whereRaw('lcase(concat(firstname, " ", lastname)) like lcase(concat("%", replace("%?%", " ", "%"), "%"))', [ $searchTerm ])
->orWhereRaw('lcase(concat(lastname, " ", firstname)) like lcase(concat("%", replace("%?%", " ", "%"), "%"))', [ $searchTerm ])
->orWhereRaw('lcase(location) like lcase("%?%")', [ $searchTerm ])
->get();