在我的Users
型号上,它是否只接受某些列?
就像我在Users
模型上传递用户名,电子邮件和密码一样,它会过滤为仅接受用户名和密码。
我试图填写protected $fillable = ['username','password'];
,但似乎没有用。
答案 0 :(得分:0)
这取决于数据库中用户模型的架构。 laravel附带的users表有一个迁移文件,如果你运行了php artisan migrate,它应该在数据库中。以下是Laravel附带的迁移文件的一部分(在数据库/迁移/中找到):
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
您可以看到默认情况下只能填充三列,如果需要,可以在此处添加更多列。虽然您需要在对迁移文件进行更改之前运行php artisan migrate:rollback,然后再次运行php artisan migrate。 (https://laravel.com/docs/5.4/migrations)
受保护的$ fillable数组只选择可以批量分配的属性(https://laravel.com/docs/5.4/eloquent#mass-assignment),因此如果要使用这样的静态创建方法,则需要这些属性:
User::create(['name' => 'John Doe', 'email' => 'john@doe.com, 'password' => bcrypt('password')]);