表单提交时Laravel 4.1 _token错误

Dex*_*ure 6 php forms csrf-protection laravel laravel-4

我在laravel 4.1中做简单的cms,我创建了很多表单并且它们工作正常,但是我创建的最后一个表单在提交时抛出错误.

Illuminate \ Database \ Eloquent \ MassAssignmentException
_token
Run Code Online (Sandbox Code Playgroud)

表单发布的数据也显示在错误页面上.

_token  KLlDjuFgaEmuGHKMpFjqSrukYT3sawOYYZLPGxnb
name    asdf
body    asdfasdfa
bio sdfasdf
Run Code Online (Sandbox Code Playgroud)

所以它的意思是_token也发布了,然后我收到这个错误的原因.

我的表格看起来像这样.

{{ Form::open(array('route' => 'admin.teachers.store','files'=>true)) }}
    <ul>
        <li>
            {{ Form::label('image', 'Image:') }}
            {{ Form::file('image') }}
        </li>

        <li>
            {{ Form::label('name', 'Name:') }}
            {{ Form::text('name') }}
        </li>

        <li>
            {{ Form::label('body', 'Body:') }}
            {{ Form::textarea('body',null,array('class'=>'ckeditor')) }}
        </li>

         <li>
            {{ Form::label('bio', 'Bio:') }}
            {{ Form::textarea('bio',null,array('class'=>'ckeditor')) }}
        </li>



        <li>
            {{ Form::submit('Submit', array('class' => 'btn btn-info')) }}
        </li>
    </ul>
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)

我在论坛上看到一个相关的问题_token问题,但它没有帮助我.

提前致谢 :)

Ant*_*iro 17

实际上你的错误是MassAssignmentException,这意味着你正在使用

Model::create($input);
Run Code Online (Sandbox Code Playgroud)

在您的控制器中,而不是使用

protected $fillable = array('columnA', 'name'...);
Run Code Online (Sandbox Code Playgroud)

要么

protected $guarded = array();
Run Code Online (Sandbox Code Playgroud)

在你的模型中,告诉Laravel你桌子的哪些字段是可分配的.

看看文档:http://laravel.com/docs/eloquent#mass-assignment