
Diego Burlando
PreguntaHola amigos, ¿ Cual es la diferencia en usar protected $guarded o protected $fillable en el modelo ?

Alejandro González Reyes
Corrección importante:
fillable: le indica que los campos pasados pueden ser asignados masivamente mendiante Modelo::create([…])
guarded: le indica que campos no pueden ser asignados masivamente mediante Modelo::create([…]). Esto no quiere decir que no se pueda guardar esa info en la base de datos. Lo puedes hacer manualmente con
$message = new Message() $message->content = $request->get('content'); $message->image = ... $message->save();

Gabriel Chávez
Aquí te va una sencilla explicación de ambas:
$guarded: se declara siempre con un array, las keys le indican a Eloquent que campos de la base de datos van a estar deshabilitados, para evitar asignarlos al modelo. Con esto no podrás guardar datos en los campos que le indiques.
$fillable: te permite indicarle a Eloquent que campos si quieres que guarden información en la base de datos, relacionándolos con el modelo.
protected: permite que se pueda acceder desde la clase que las define y también desde cualquier otra clase que herede de ella. Aunque esto no tiene que ver directamente con Laravel, sino con PHP.
Saludos 😃