当我尝试在数据库中创建数据时,我面临以下错误: [2014-09-27 09:02:40] production.ERROR:异常'Illuminate \ Database \ Eloquent \ MassAssignmentException',在E:\ Web \ xampp \ htdocs \ laravel \ bootstrap \ compiled.php中显示消息'name':6397
在new.blade.php文件中:
@extends('layouts.default')
@section('content')
<h1>New Author page</h1>
{{ Form::open(array('url' => 'authors/create', 'method' => 'POST')) }}
<p>
{{ Form::label('name', 'Name:') }}
{{ Form::text('name') }}
</p>
<p>
{{ Form::label('bio', 'Biography:') }}
{{ Form::textarea('bio') }}
</p>
<p>
{{ Form::submit('Add Author') }}
</p>
{{ Form::close() }}
@endsection
并在routes.php中,我的路线设置为:
Route::get('authors', array('uses'=>'AuthorsController@index', 'as'=>'authors'));
Route::post('authors/create', array('uses'=>'AuthorsController@create', 'as'=>'create_author'));
和我的Authorscontroller.php文件中的代码如下:
public function create()
{
Author::create(array(
'name' => Input::get('name'),
'bio' => Input::get('bio')
));
return Redirect::route('authors');
}
版本laravel 4.2的问题在哪里?
答案 0 :(得分:0)
在你的模型中你必须给私人$ guarded = array('id');这里的id是表的主键,这意味着当你使用使用批量赋值的create或update方法时,guarded数组中的给定字段将不会被更新!您必须在模型中定义此属性以使用create()或update()方法
来使用质量赋值private $guarded = array('id'); //id is primary key where it can be any field which will not be updated in mass assignment