Olá.
Tenho uma dúvida sobre validação no Laravel.
No meu trabalho desenvolvemos as aplicações com outro framework, o CakePHP.
No Cake temos duas validações, a validação dos dados que vem do formulário, antes de instanciarmos uma entity com estes dados onde podemos fazer a validação do formato dos dados ou tipo, que é semelhante ao que o validate do Laravel faz.
E uma segunda validação antes de salvar a Entity no banco. A documentação se refere a esse segunda validação antes de salvar no banco como Regras de aplicação.
Exemplo de uma regra de aplicação:** Em um post de um blog um usuário não pode fazer mais de um comentário.**
Então o fluxo de validação seria assim:
- Recebo os dados do formulário e com estes dados instancio uma Entity e neste momento valido os dados vindos no fomulário se tudo estiver ok o código continua seu fluxo de execução.
- Depois de instanciado minha entity e validado os dados chamo o metodo save do Repositorio e passo como parâmetro a intidade que quero persistir no banco, e nesse momento executo a segunda validação (Regras de aplicação) se tudo estiver ok os dados serão persistidos caso contrário será gerado um erro que deve ser tratado e mostrado ao usuário na interface.
Para mais detalhes: https://book.cakephp.org/3/en/orm/validation.html#validating-data
Como eu posso fazer essa regra de aplicação no Laravel? Ex: Em um post de um blog um usuário não pode fazer mais de um comentário.
Sei que a estrutura do Cake (Entities e Repositories) é diferente da do Laravel, mas gostaria de colocar essa segunda validação (Regra de Aplicação) no Model do Laravel e não no FormRequest, porque seria executada antes de persistir os dados já validados no banco. É possível fazer algo assim no Laravel?
Eu dei uma olhada na documentação do Laravel e não encontrei nada que pudesse identificar como algo parecido nesse sentido.