Я в тупике от этого. Я хочу добавить json закодированный массив к данным, которые передаются моей модели.Laravel - данные не передаются модели :: create() из репозитория
В моей модели у меня есть мутатор, который будет выполнять некоторые пользовательские работы над массивом перед представлением.
Однако, хотя я уверен, что данные существуют в массиве $ 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 был установлен в нефтеналивной собственности также. Все остальные атрибуты заносятся в журнал, кроме этого? Любые идеи о том, почему это так?
Update
я определил, что это будет ошибка вызвана «Атрибуты» термин является частью имени свойства. Я попытался изменить имя свойства на «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);
Разве вы не регистрируете '$ value', а не' $ this-> дополнительные атрибуты'? –
Вы определили атрибут $ fillable на своей модели? https://laravel.com/docs/5.2/eloquent#mass-assignment – Pascal
@JoelHinz Спасибо за ответ. Нет, это просто пример, у меня больше в моем мутаторе, но журнал проверяет только текущее значение дополнительных атрибутов. Я подтвердил, что это ошибка в структуре. Теперь я уточню вопрос. – jiraiya