Laravel 5.2模型$ fillable被忽略了吗?

时间:2016-04-14 12:48:49

标签: php laravel mass-assignment

我有一个简单的模型IsolatedQuery,其中包含namequery字段。我在模型的$fillable属性中定义了这两个字段。 IsolatedQueryController @ store看起来像这样:

public function store(IsolatedQueryRequest $request)
{
    IsolatedQuery::insert($request->all());

    session()->flash('flash_message', 'Isolated Query succesvol opgeslagen');

    return redirect('iq');
}

为了完整性,这里是模型的来源(它与我描述的一样少)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class IsolatedQuery extends Model
{
    protected $fillable = [
        'name',
        'query'
    ];
}

IsolatedQueryRequest只需要namequery填充任何值。

使用给定名称和查询值调用store方法时,我收到错误:SQLSTATE[42S22]: Column not found: 1054 Unknown column '_token' in 'field list'

显然_token字段随请求一起发送但我有点困惑为什么它试图用实际的SQL查询存储它,因为它没有列在$fillable数组中。

为什么要进行质量分配?

1 个答案:

答案 0 :(得分:3)

您使用查询构建器的方法insert。它没有检查fillable
你应该使用Eloquent的createupdate方法。
请阅读documentation

此外,您可以将输入数据传递给Eloquent的constructfill方法。之后,您可以使用save方法。