2
respostas

Método create request all

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?

2 respostas

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.