search with relationships
[Finalizado Pelo Aluno]
Carlos, tudo blz?
Preciso fazer uma busca no model user, como poderia fazer incluindo os relacionamentos deste model?
exemplo
user->cpf()->
como eu faria pra buscar pelo cpf por exemplo?
segue meu código abaixo:
/**
* Search results
*
* @param Request $request
* @return \Illuminate\Http\Response
*/
public function search(Request $request)
{
$filters = $request->only('filter');
$users = $this->repository
->where(function($query) use ($request) {
if ($request->filter) {
$query->orWhere('name', 'LIKE', "%{$request->filter}%");
$query->orWhere('email', $request->filter);
}
})
->latest()
->paginate();
return view('admin.pages.users.index', compact('users', 'filters'));
}
Olá, Albert!
Tudo bem?
Existem alguns caminhos para fazer isso.
Você pode usar o whereHas:
$users = $this->repository
->where(function($query) use ($request) {
if ($request->filter) {
$query->orWhere('name', 'LIKE', "%{$request->filter}%");
$query->orWhere('email', $request->filter);
}
})
->orWhereHas('nome_relacionamento_aqui', function($query) {
$query->where('nome_coluna', 'value');
})
->latest()
->paginate();
Outra forma é fazendo join:
$users = $this->repository
->join('outra_tabela', 'outra_tabela.coluna', '=', 'users.id')
->select('outra_tabela.colunax', 'users.colunax', 'users.colunaz')
->where(function($query) use ($request) {
if ($request->filter) {
$query->orWhere('name', 'LIKE', "%{$request->filter}%");
$query->orWhere('email', $request->filter);
}
})
->latest()
->paginate();
Resolvido!
Gratidão
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!