[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Albert Reis da Cruz
Criador Albert Reis da Cruz 27/01/2022

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'));

    }

Manager Carlos Ferreira 27/01/2022

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();

Carlos Ferreira
Criador Albert Reis da Cruz 27/01/2022

Resolvido!

Gratidão

Albert Reis da Cruz
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!