laravel 4.2没有创建到数据库中

时间:2014-09-27 09:09:18

标签: php laravel laravel-4

当我尝试在数据库中创建数据时,我面临以下错误: [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的问题在哪里?

1 个答案:

答案 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