我被这个难倒了。我想将json编码数组添加到传递给我的模型的数据中。
在我的模型中,我有一个mutator,它会在提交之前对数组执行一些自定义工作。
然而即使我确定数据存在于$ data数组中,当我在模型中记录该值时,我什么也得不到。任何想法都表示赞赏。
MyRepository.php
$data['additionalAttributes'] = json_encode($additionalAttributes);
Log::debug($data);
return MyModel::create($data);
MyModel.php
//The following returns null for no reason.
Log::debug($this->additionalAttributes);
additionalAttributes也已在fillable属性中设置。除了这个之外,所有其他属性都是可记录的吗?关于为什么会出现这种情况的任何想法?
更新
我已经确定这是由"属性"引起的错误。术语是属性名称的一部分。我尝试将属性的名称更改为" AdditionalStuff"它立即起作用。我已经通过以下链接在github上报告了这个问题。
https://github.com/laravel/framework/issues/13460
下一个示例正常。唯一的变化是名称。
MyRespoitory.php
$data['additionalStuff'] = json_encode($additionalStuff);
Log::debug($data);
return MyModel::create($data);
以下内容返回预期的输出。
MyModel.php
Log::debug($this->additionalStuff);
答案 0 :(得分:0)
我已经确定这是一个错误,请参阅上面的问题,了解github上报告的详细信息和问题。
答案 1 :(得分:0)
与accessors & mutators绑定。因此,'属性'后缀保留用于字段名称。