Laravel 5.2 模型 $fillable 被忽略了?

Laravel 5.2 Model $fillable gets ignored?

我有一个简单的模型 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 查询一起存储,因为它没有在 [=16] 中列出=]数组。

为什么分配质量?

您使用查询生成器的方法 insert。它不检查 fillable
您应该使用 Eloquent 的 createupdate 方法。
请阅读 documentation

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