Boa noite
Para que serve este atributo $fillable mesmo?
Boa noite
Para que serve este atributo $fillable mesmo?
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.