Boa noite
Para que serve este atributo $fillable mesmo?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.