Esse método Create com request all é maravilhoso, porém como eu faria caso eu tenha que tratar o conteúdo recebido do form antes de enviar para o banco?
Esse método Create com request all é maravilhoso, porém como eu faria caso eu tenha que tratar o conteúdo recebido do form antes de enviar para o banco?
Esse 'tratar' seria o que, algum tipo de validação, formatação de algum dados, adicionar atributos computados?
No caso da validação, você pode usar o form validation request, esse é o cara responsável por validar os dados vindos da requisição com base em regras já definidas. A documentação é muito clara sobre o que você pode fazer.(https://laravel.com/docs/5.8/validation)
No caso de alguma formatação dos dados, você pode usar um recurso do eloquent, os mutators. É um recurso muito interessante. Novamente, a documentação é muita clara. (https://laravel.com/docs/5.8/eloquent-mutators)
Se ainda assim, você precisar fazer alguma coisa que essas recursos não lhe satisfaçam, por exemplo, além dos dados vindos da requisição, você quer adicionar algo a mais, como um atributo computado. Faça algo como:
$requestData = Request::all();
$requestData['atributo_computado'] = 'Qualquer valor';
Produto::create($requestData);
Mas lembre que, se esse for o caso, o 'atributo computado' deve estar no array $fillable do teu model. Caso contrário esse atributo será ignorado. Mais informações sobre isso (https://laravel.com/docs/5.8/eloquent#mass-assignment)
Olá, João. Na nova versão dos cursos de Laravel trabalhamos tanto com o caso do $request->all()
quanto pegando atributos individualmente.
:-D
Mas basicamente, o que o Matheus disse resolve seus problemas.