Filtro com colunadas relacionadas
[Finalizado Pelo Aluno]
Boa tarde.
Tenho um retorno relacionado e está ok. Listo as ordens de serviço com seus clientes pelo nome e seus veículos pela placa.
Estou tentando fazer assim mas está errado!!!
Alterei para
Olá, Marcos! Tudo bem?
Preciso entender melhor sua estrutura de tabelas, para conseguir te ajudar com isso.
Bom dia. Segue estrutura e relacionamentos:
CREATE TABLE `ordemservicos` (
`id` bigint UNSIGNED NOT NULL,
`veiculo_id` bigint UNSIGNED NOT NULL,
`cliente_id` bigint UNSIGNED NOT NULL,
`user_id` bigint UNSIGNED NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
E aqui o meu index no controller. Vem as OSs e seus relacionamentos:
E essa query final está retornando como precisa?
Sim. Retorna ok
Vem todas as ordem com seus clientes e veículos.
Show, posso finalizar o ticket?
O problema está no search. Preciso filtrar com os relacionamentos e não estou sabendo resolver isso.
Precisa fazer o join:
$results = $ordemservico->join('veiculos', 'veiculos.id', '=', 'ordemservicos.veiculo_id')
->join('clientes', 'clientes.id', '=', 'ordemservicos.cliente_id')
->where('ordemservicos.nome_coluna', 'LIKE', "%{$filter}%")
->where('veiculos.nome_coluna', 'LIKE', "%{$filter}%")
->where('clientes.nome_coluna', 'LIKE', "%{$filter}%")
->get();
Bom dia.
Funcionou. Obrigado.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!