Muhammad Ilham:
Tengo una tabla de usuarios: id | Nombre | apellido cuando se muestran datos de los usuarios, no tengo un nombre de filtro por lo que un usuario puede buscar por nombre (nombre, apellido o nombre completo); el problema es cuando la entrada se FULLNAME que da como resultado 0 datos, por ejemplo: fistname: Michael Apellido: foobar cuando miro para "Michael" y "foobar" no tengo ningún problema, pero cuando miro para "Michael foobar" devolverlo nada
mi código siguiente aspecto:
$dataQuery = $dataQuery->where(function ($dataQuery) use ($fullname) {
$dataQuery->where('users.firstname', 'like', '%' . $fullname . '%')
->orWhere('users.lastname', 'like', '%' . $fullname . '%')
->orWhere('CONCAT_WS(" ", `users.firstname`, `users.lastname`)', 'LIKE', '%' . $fullname . '%');
});
PD: Lo siento por mi falta de Inglés, espero que todos ustedes entienden
Tsakhog:
Está utilizando MySQL incorporada la función CONCAT_WS
, los PLZ utilizar DB::raw()
para la función:
->orWhere(DB::raw('CONCAT_WS(" ", `users.firstname`, `users.lastname`)'), 'LIKE', '%' . $fullname . '%');