当我尝试保存表单数据时,Laravel抛出了一个批量赋值异常。
在视图中我使用{!! form::open(...) !!}
我知道创建_token
作为隐藏字段。
当表格数据发送到控制器时,我使用
$data = Input::all();
$order = Order::create($data);
$order->save();
我应该在数据库中为_token
添加字段吗?或者我是通过做其他错误导致错误的?
答案 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']);在您创建之前。