Laravel user::create 缺失数据
Laravel user::create missing data
我已经使用迁移来更新我的用户 table 以包含提交的用户名,但在注册时该字段未填充到数据库中:
$input = Input::only(['name', 'username', 'email', 'password']);
$input['password'] = Hash::make($input['password']);
User::create($input);
return Redirect::to('login');
post 的转储提供了这个:
array (size=4)
'name' => string 'Joe Bloggs' (length=13)
'username' => string 'jbloggs' (length=12)
'email' => string 'jbloggs@gmail.com' (length=24)
'password' => string 'y$whgTTwa5g.du/WJfJGhGtO******SYTerzL4bhOuedW4C' (length=60)
但是用户名字段始终为空。没有错误或警告。我试过回滚和重新迁移,但没有任何变化。
我错过了什么吗?谢谢!
当您在 eloquent model
中添加用户时,您有一个数组 $fillable
,它允许您 批量分配 更多可以找到http://laravel.com/docs/4.2/eloquent#mass-assignment
您传递给 create
的所有属性都需要在 $fillable
数组中定义,以便您可以将它们用于 mass assignment
你的情况:
protected $fillable = array('name', 'username', 'email', 'password');
或者您也可以定义相反的一组 guarded
属性:
protected $guarded = array('foo', 'bar');
我已经使用迁移来更新我的用户 table 以包含提交的用户名,但在注册时该字段未填充到数据库中:
$input = Input::only(['name', 'username', 'email', 'password']);
$input['password'] = Hash::make($input['password']);
User::create($input);
return Redirect::to('login');
post 的转储提供了这个:
array (size=4)
'name' => string 'Joe Bloggs' (length=13)
'username' => string 'jbloggs' (length=12)
'email' => string 'jbloggs@gmail.com' (length=24)
'password' => string 'y$whgTTwa5g.du/WJfJGhGtO******SYTerzL4bhOuedW4C' (length=60)
但是用户名字段始终为空。没有错误或警告。我试过回滚和重新迁移,但没有任何变化。
我错过了什么吗?谢谢!
当您在 eloquent model
中添加用户时,您有一个数组 $fillable
,它允许您 批量分配 更多可以找到http://laravel.com/docs/4.2/eloquent#mass-assignment
您传递给 create
的所有属性都需要在 $fillable
数组中定义,以便您可以将它们用于 mass assignment
你的情况:
protected $fillable = array('name', 'username', 'email', 'password');
或者您也可以定义相反的一组 guarded
属性:
protected $guarded = array('foo', 'bar');