Para aplicar el método whereHas, pueden cambiar el contenido del scope por este contenido: $query->where(function($query) use ($params) { $query->when($params['name'] ?? false, function($query, $name) { $filters = explode(' ', $name); $query->where('first_name','LIKE','%'.$filters[0].'%') ->orWhere('last_name','LIKE','%'.$filters[1].'%'); }); }) ->when($params['company'] ?? false, function($query, $company) { $query->whereHas('company', function($query) use ($company) { $query->where('companies.name','LIKE',"%{$company}%"); }); }); El método whereHas recibe como primer parametro el nombre de su relación, en este caso company, y como segundo parametro un callback que a su vez recibe un query builder, dentro de este callback pueden agregar las condiciones necesarias para aplicar al modelo de su relación.
Para aplicar el método whereHas, pueden cambiar el contenido del scope por este contenido:
$query->where(function($query) use ($params) {
$query->when($params['name'] ?? false, function($query, $name) {
$filters = explode(' ', $name);
$query->where('first_name','LIKE','%'.$filters[0].'%')
->orWhere('last_name','LIKE','%'.$filters[1].'%');
});
})
->when($params['company'] ?? false, function($query, $company) {
$query->whereHas('company', function($query) use ($company) {
$query->where('companies.name','LIKE',"%{$company}%");
});
});
El método whereHas recibe como primer parametro el nombre de su relación, en este caso company, y como segundo parametro un callback que a su vez recibe un query builder, dentro de este callback pueden agregar las condiciones necesarias para aplicar al modelo de su relación.
Excelente explicacion. Gracias!!!
Espectacular el vídeo! Geniooo
buen video
Excelentes tutoriales, muchas gracias por tu tiempo, Dios te bendiga.
Esto es oro amigo!!! Excelente video!!!