【发布时间】:2013-06-02 17:54:09
【问题描述】:
我正在运行一个 laravel 4 框架,但我得到了一个糟糕的结果!当我尝试更新 eloquent 模型类的实例时,仅显示消息“_token”的错误。这是什么意思?我使用 Form::model 创建表单,并且可以更新其他模型类的记录。
【问题讨论】:
-
你能发布任何相关的代码吗?一个stracktrace?
我正在运行一个 laravel 4 框架,但我得到了一个糟糕的结果!当我尝试更新 eloquent 模型类的实例时,仅显示消息“_token”的错误。这是什么意思?我使用 Form::model 创建表单,并且可以更新其他模型类的记录。
【问题讨论】:
这通常是 CSRF 令牌丢失或不匹配的结果。如果您没有在表单中放置令牌,请通过在表单中的某处回显函数“Form::token()”来执行此操作。否则,如果您使用 'Form::open()' 语法打开表单,我相信这是为您处理的。你可以在这里了解更多信息:http://laravel.com/docs/html#csrf-protection
令牌存储为用户会话的一部分,顺便说一句,因此如果您将会话存储在数据库中,然后在获取表单和发布表单之间擦除数据库,则可能会出现令牌不匹配错误。
【讨论】:
如果我没记错的话,使用 Form::open / Form::model 时会自动添加令牌。 在这种情况下,您的模型中可能缺少数组 $fillable/$guarded。
您可以在此处阅读更多相关信息: http://laravel.com/docs/4.2/eloquent#mass-assignment
【讨论】: