Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Lógica de negócio com acesso ao banco na Model ou Controller?

Minha dúvida é a seguinte: Todo o acesso ao banco (inserts, deletes, etc) está sendo feito pela Controller usando o eloquent. Mas, no caso, até agora só o crud. Se eu quiser implementar uma lógica que, por exemplo, quando eu for inserir um registro numa tabela, o sistema gere um código baseado em algo que está no banco de dados, como um MAX(id) e realize alguns tratamentos pra gerar uma nova informação dinamicamente pra eu passar junto dos parâmetros de inserção.

Essa lógica ficaria dentro da minha model ou da minha controller?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
4 respostas

Bom dia Fábio! Geralmento a boa prática nos diz que devemos isolar as responsabilidades das classes, neste caso, como você quer implementar uma lógica 'a mais' para a inserção, o melhor seria usar um helper, é uma boa saída.

http://laravel.io/forum/02-03-2015-best-practices-for-custom-helpers-on-laravel-5?page=1

Olá Douglas, valeu pela resposta. Mas só para entender então: Eu criaria um helper contendo a função que eu preciso? Porque utilizar um helper e não um método de alguma das classes que eu já utilizo?

solução!

Para isolar responsabilidades. Ex: ''' class Produto extends algumaOutra { public function venda(){ $venda= //buscando dados da venda; $db->insere();//só um exemplo Email::envia(); //um bom exemplo é que o código de envia e-mail, fica isolado, não é responsabilidade da classe Produto saber a logica de enviar e-mail. } } ''' Qualquer duvida manda aí. Esse conceitos são mais bem explicados nos cursos de patterns.

Saquei! Entendi man, vou dar uma conferida nesses cursos também. Valeu mesmo!