Soy un novato Laravel. Quiero sembrar mi base de datos. Cuando ejecuto el comando seed obtengo una excepción
[Illuminate\Database\Eloquent\MassAssignmentException]
username
db:seed [--class[="..."]] [--database[="..."]]
¿Qué estoy haciendo mal? El comando que uso es:
php artisan db:seed --class="UsersTableSeeder"
Mi clase de semilla es la siguiente:
class UsersTableSeeder extends Seeder {
public function run()
{
User::truncate();
User::create([
'username' => 'PaulSheer',
'email' => '[email protected]',
'password' => '45678'
]);
User::create([
'username' => 'Stevo',
'email' => '[email protected]',
'password' => '45678'
]);
}
}
Lea esta sección de Laravel doc : http://laravel.com/docs/eloquent#mass-assignment
Laravel proporciona por defecto una protección contra problemas de seguridad de asignación masiva. Es por eso que usted tiene que definir manualmente qué campos pueden ser "asignados en masa":
class User extends Model
{
protected $fillable = ['username', 'email', 'password'];
}
Atención : ten cuidado cuando permitas la asignación masiva de campos críticos como password
o role
. Podría dar lugar a un problema de seguridad porque los usuarios podrían ser capaces de actualizar los valores de estos campos cuando usted no quiere.
Estaba recibiendo la MassAssignmentException cuando he extiende mi modelo como este.
class Upload extends Eloquent {
}
Yo estaba tratando de insertar matriz como esta
Upload::create($array);//$array was data to insert.
El problema se ha resuelto cuando he creado el modelo de carga como
class Upload extends Eloquent {
protected $guarded = array(); // Important
}
Referencia https://github.com/aidkit/aidkit/issues/2#issuecomment-21055670