A atribuição em massa é um processo de envio de uma matriz de dados que serão salvos no modelo especificado de uma só vez. Em geral, você não precisa salvar os dados no seu modelo individualmente, mas em um único processo.
A atribuição em massa é boa, mas há alguns problemas de segurança por trás disso. E se alguém passa um valor para o modelo e sem proteção, ele pode definitivamente modificar todos os campos, incluindo o ID. Isso não é bom.
Vamos dizer que você tem a tabela 'estudantes', com campos "student_type, first_name, last_name” . Você pode querer atribuir massa 'first_name, last_name', mas que pretende proteger student_type de ser alterado diretamente. É aí que fillable e vigiado ter lugar.
Preenchível permite especificar quais campos são atribuíveis em massa no seu modelo. Você pode fazê-lo adicionando a variável especial $fillable
ao modelo. Então, no modelo:
class Student extends Model {
protected $fillable = ['first_name', 'last_name']; //only the field names inside the array can be mass-assign
}
o ' student_type ' não está incluído, o que significa que eles estão isentos.
Guardado é o inverso do preenchível. Se preenchível especificar quais campos serão atribuídos em massa, guardado especifica quais campos não são atribuíveis em massa. Então, no modelo:
class Student extends Model {
protected $guarded = ['student_type']; //the field name inside the array is not mass-assignable
}
você deve usar $ fillable ou $ guarded - não os dois.
Para mais detalhes, acesse o link: - Atribuição em massa