Consulta
[Finalizado Pelo Aluno]
Professor, tenho um modelo Client e um modelo Condition onde:
Client->hasMany(Condition)
Condition->belongsTo(Client)
Meu modelo Condition tem um campo 'date' e preciso listar todos os clientes recuperando apenas a útilma (data mais recente) condição associada à esse cliente. Existe uma forma simples de fazer com Eloquent ou pra consultas mais especificas é melhor usar o QueryBuilder? Como ficaria o código?
Obrigado.
Olá, Pedro!
Tudo bem?
Normalmente para consultas mais especificas para eu uso Query Builder, especialmente para filtros ordenação, porque o método orderBy do Laravel não aceita uma função de callback para aplicar regras customizadas.
Correção: O modelo Condition na verdade é Report.
Consegui realizar a consulta (não sei se da melhor forma):
Porém no modelo Report existe um campo 'condition' e é esse campo que me interessa. Ou seja, preciso consultar a condição mais recente deste cliente...
Já tentei passar 'condition' no select, porém nao consigo o groupBy('client_id'), sendo preciso passar groupBy('client_id', 'condition_id'). Parece que ele não 'amarra' os campos do select pela linha, também tenter where passando maxdate sem sucesso, estou travado aqui...
Finalmente cheguei em um resultado depois de muito quebrar a cabeça, mas ainda me falta segurança de estar fazendo de uma forma ineficiente. Poderia comentar, professor? Obrigado,
Olá, Pedro!
Ficou OK o seu código, não enxerguei nada que desrespeite as boas práticas.
Apenas sugiro que trabalhe com repositories.
Esse loop que fez foi apenas para debug temporário, certo?
Sim, procuro fazer o debug em tela antes de implementar e mandar pra view.
Estou usando repositories sim professor.
Obrigado pela atenção.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!