我正在处理系统的 CRUD 部分。用户可以更新关键字。我想做的类似于 INSERT IGNORE
MySQL 语句。
我在一个 foreach 循环中并尝试更新关键字,但是我得到了一个
Mass Assignment Exception
错误
我目前的代码如下,我做错了什么吗?
// Save The Keywords...
$kwords = Input::get('keywords');
foreach($kwords as $key => $value)
{
// Save The Keywords...
Keywords::updateOrCreate( array('pack_id'=> $pack->pack_id, 'keyword_title' => $value));
}
干杯
最佳答案
如果您尝试批量分配模型类定义中未指定的字段,Laravel 会报错。
这与恶意用户可能会尝试在您的模型中分配不应从应用程序用户更新的文件(即向表单添加一些参数)这一事实有关
为了能够批量分配字段,您必须指定您希望在模型中“批量分配”的所有字段:
class Keywords extends Eloquent {
protected $fillable = array('pack_id', 'keyword_title');
}
或者,您可以让一些字段 protected (不可批量分配),而所有其他字段都可以批量分配:
class Keywords extends Eloquent {
protected $guarded = array('guarded_field');
}
如果您使用的是 Laravel 4,请检查 here了解更多信息
关于php - updateOrCreate - Laravel 中的批量分配异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079511/