Laravel 5.2 模型 $fillable 被忽略了?
Laravel 5.2 Model $fillable gets ignored?
我有一个简单的模型 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
只需要name
和query
都填任意值即可。
使用给定的名称和查询值调用 store
方法时出现错误:SQLSTATE[42S22]: Column not found: 1054 Unknown column '_token' in 'field list'
。
很明显,_token
字段随请求一起发送,但我有点困惑为什么它试图将它与实际的 SQL 查询一起存储,因为它没有在 [=16] 中列出=]数组。
为什么分配质量?
您使用查询生成器的方法 insert
。它不检查 fillable
。
您应该使用 Eloquent 的 create
或 update
方法。
请阅读 documentation。
此外,您可以将输入数据传递给 Eloquent 的 construct
或 fill
方法。之后你可以使用save
方法。
我有一个简单的模型 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
只需要name
和query
都填任意值即可。
使用给定的名称和查询值调用 store
方法时出现错误:SQLSTATE[42S22]: Column not found: 1054 Unknown column '_token' in 'field list'
。
很明显,_token
字段随请求一起发送,但我有点困惑为什么它试图将它与实际的 SQL 查询一起存储,因为它没有在 [=16] 中列出=]数组。
为什么分配质量?
您使用查询生成器的方法 insert
。它不检查 fillable
。
您应该使用 Eloquent 的 create
或 update
方法。
请阅读 documentation。
此外,您可以将输入数据传递给 Eloquent 的 construct
或 fill
方法。之后你可以使用save
方法。