Laravel 5:当持久化表单数据时,_token会导致批量分配异常

时间:2015-04-08 13:16:05

标签: php forms laravel-5

当我尝试保存表单数据时,Laravel抛出了一个批量赋值异常。

在视图中我使用{!! form::open(...) !!}我知道创建_token作为隐藏字段。

当表格数据发送到控制器时,我使用

$data = Input::all();
$order = Order::create($data);
$order->save();

我应该在数据库中为_token添加字段吗?或者我是通过做其他错误导致错误的?

4 个答案:

答案 0 :(得分:25)

通常会导致质量分配异常,因为您没有在模型中指定fillable(或guarded相反的)属性。这样做:

class Order extends Eloquent {
    protected $fillable = ['field1', 'foo', 'bar'];
}

这样您也不必担心_token因为只有指定的字段会被填充并保存在数据库中,无论您传递给模型的其他内容是什么。

答案 1 :(得分:5)

protected $guarded = array();

答案 2 :(得分:0)

确保将$ fillable或$ guarded放置在app \ Order.php文件中,而不是app \ Http \ Controllers \ OrderController.php文件中。

答案 3 :(得分:0)

回答您的第一个问题。您可能要取消设置($ request ['_ token']);在您创建之前。