8 thoughts on “ToDoVel [Parte 20] Autenticação – Login

  1. Ficou feio isso hein?! Cadê a divisão de responsabilidades?!
    Pode ser que isso seja respondido lá na frente, mas de qualquer forma aqui vai uma questão:

    – Estou apenas iniciando com o Laravel, desenvolvo com o CakePhp a um bom tempo, e resolvi estudar para ver se o “Lara” é tão bom mesmo quanto ouço falar. Mas a validação não deveria ser responsabilidade dos Models?

    1. Sim e não.
      O caso é questão de conceito…
      Por um lado, temos a validação de um formulário, que pode ou não conter dados que serão utilizados por um banco de dados (model), como por exemplo um verificador de captcha.
      Essa validação deveria ser feita pela camada de modelo ou pela camada de controle do projeto?
      Porém, pelo outro lado, temos a validação dos dados que são inseridos no banco de dados pela camada model. De fato, na inserção deve haver validação. Essa validação deveria ser de responsabilidade da classe model?

      Agora, quando juntamos as duas coisas?
      Quando temos uma validação de formulário e, por incrível que pareça, os dados validados serão utilizados, dentro da lógica da aplicação, para serem inseridos no banco de dados, quem deve validá-los? O controller ou o model? Ou devemos validá-los duas vezes?

      Cabe ao engenheiro de software e/ou equipe de desenvolvimento definir.
      Alguns frameworks já tomam essa decisão, outros deixam para implementação e alguns oferecem as duas formas.
      Laravel oferece a facilidade do Model-Form-Bind: http://laravel.com/docs/html#form-model-binding

      Eu prefiro manter todas as validações no Controller, mas este é meu gosto.
      O padrão MVC não faz imposições nem restrições de onde a validação deve ficar.

      Caso queira saber mais, fica aqui algumas dicas de leitura:
      Where to put validation in the MVC pattern
      In MVC should a model handle validation?
      Input Validation vs. Model Validation in ASP.NET MVC

  2. como estou começando com Laravel, gostaria de saber como ficaria se fosse criado um controller em vez de criar tudo nas rotas? valeu.

      1. olá

        testei dos dois modos e tive umas duvidas
        utilizando o jeito q voce postou deu tudo certo

        utilizando controllers nao deveria ser Route::get(‘login’, ‘LoginController@getLogin’); ao inves de BaseController? (eu troquei e deu certo)

        e esse [´before’ => ‘csfr’ …..] parece que deu problema aqui porque com ele nao funcionou, deu tokenmistmatch e sem ele funcionou, mas como nao sei pra que serve nao sei se é necessário

        obrigado

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *