代码之家  ›  专栏  ›  技术社区  ›  Ben

Laravel 5.2 Model$fillable被忽略?

  •  4
  • Ben  · 技术社区  · 8 年前

    我有一个简单的模型 IsolatedQuery 它由一个 name query 领域我已经在 $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 只需要两者 名称 查询 以填充任何值。

    当调用 store 方法的名称和查询值,我得到错误: SQLSTATE[42S22]: Column not found: 1054 Unknown column '_token' in 'field list' .

    很明显 _token 字段与请求一起发送,但我有点困惑,为什么它要尝试将其与实际的SQL查询一起存储,因为它没有在 $可填充 大堆

    为什么要分配质量?

    1 回复  |  直到 8 年前
        1
  •  4
  •   Vitaliy Kravchyshyn    8 年前

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

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