无法使用Eloquent创建方法创建模型.告诉MassAssignMentException时出错

Nir*_*paz 5 laravel eloquent laravel-4

我创建了一个名为Author的模型.我试着在eloquent create方法的帮助下创建一个模型,如下所示:

public function postCreate(){
   Author::create(array(
       'user' => Input::get('user'),
       'info' => Input::get('info') 
   ));
   return Redirect::to('authors')
        ->with('message', 'User created successfully');
}
Run Code Online (Sandbox Code Playgroud)

'user'和'info'是表单元素的名称.我确信我并没有误解错字.当我运行它时,不会创建模型并显示MassAssignmentException.

但是,当我尝试使用以下方法时,模型已创建并保存在表中

public function postCreate(){

    $author = new Author;
    $author->name = Input::get('user');
    $author->info= Input::get('info');
    $author->save();

    return Redirect::to('authors')
        ->with('message', 'User created successfully');

}
Run Code Online (Sandbox Code Playgroud)

我真的想要使用create方法,它看起来更干净,更简单.

Gad*_*oma 10

这应该适合你:

1)已经由@fideloper和@-shift-exchange列出,在您的作者模型中,您需要创建以下字段(这是您希望可用于自动填充的所有数据库列的白名单[质量分配])

 protected $fillable = array('user','info', ... ,'someotherfield'); 
Run Code Online (Sandbox Code Playgroud)

2)使用下面的代码来解雇质量分配机制

$author = new Author;
$author->fill(Input::all());
$author->save();
Run Code Online (Sandbox Code Playgroud)