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

Dúvidas sobre o atributo $fillable

Boa noite

Para que serve este atributo $fillable mesmo?

2 respostas
solução!

Olá Leonardo,

Esse atributo serve para você definir os campos do seu model que podem ser "atribuídos em massa" (mass assignment), que seria a passagem de vários valores de uma vez só para a inserção no banco.

Por exemplo, temos um model User com os campos id, nome, idade. Para você cadastrar um novo usuário você vai ter que criar um objeto e passar os valores um por um:

$joao = new User();
$joao->nome = 'João';
$joao->idade = 20;

$joao->save();

Mas para facilitar esse cadastro podemos definir o valor de $fillable com as colunas que permitimos, colocando $fillable = ['nome', 'idade']; no model agora podemos fazer o cadastro assim:

$joao = User::create([ 'nome' => 'João', 'idade' => 20 ]);

Acima estamos atribuíndo vários valores ao mesmo tempo, isso que é o mass assignment, e utilizando o $fillable podemos controlar quais as colunas que permitimos fazer isso. Nesse exemplo permitimos apenas nome e idade, caso a gente tente passar o id também o valor vai ser ignorado:

// Funciona mas ignora o valor 123 para id
$joao = User::create([ 'id' => 123, 'nome' => 'João', 'idade' => 20 ]);

Espero ter ajudado, qualquer dúvida é só falar!

Obrigado pela ajuda.