Laravel - 数据未从存储库传递给model :: create()

时间:2016-05-06 13:42:23

标签: php laravel laravel-5 repository laravel-5.2

我被这个难倒了。我想将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);

2 个答案:

答案 0 :(得分:0)

我已经确定这是一个错误,请参阅上面的问题,了解github上报告的详细信息和问题。

https://github.com/laravel/framework/issues/13460

答案 1 :(得分:0)

accessors & mutators绑定。因此,'属性'后缀保留用于字段名称。