2014-04-29 63 views
0

爲什麼第一個代碼有效,但第二個代碼不起作用?Laravel上的兩個版本

第一:

$user = new User; 
$user->name = Input::get('name'); 
$user->email = Input::get('email'); 
$user->password = Hash::make(Input::get('password')); 
$user->save(); 

二:

User::create(array(
    'name' => Input::get('name'), 
    'email' => Input::get('email'), 
    'password' => Hash::make(Input::get('password')), 
)); 

錯誤消息:

Illuminate \ Database \ Eloquent \ MassAssignmentException 
name 

回答

1

你需要設置模型上的$fillable變量,讓它知道哪些字段可質量編號

Laravel Mass Assignment

更新:

deczohar2vey都表示,你也可以使用$guarded的黑名單,而不是作爲$fillable白名單。

+0

'fillable'作爲白名單或'guarded'作爲黑名單 –

+0

我的鼠標搞砸了......雙擊了upvote on your comment ...對不起,想把你的評論+1給deczo – lagbox

0

對於一個簡單的解決方案,特別是如果你沒有場看守,使用$來代替守衛:

//On top of your model class 
protected $guarded = array();