Я обновился до laravel 5.5 и Voyager 1.0 и использую mysql в бродячем ящике.
Я хочу добавить запись в таблицу data_rows для связи между пользователем и магазином. Я могу создать запись, используя графический интерфейс Voyager.
При этом создается соответствующая запись в таблице Когда я копирую все эти значения в мой сеялку
$dataRow = $this->dataRow($storeDataType, 'store_belongsto_user_relationship');
if (!$dataRow->exists) {
$dataRow->fill([
'type' => 'relationship',
'display_name' => 'Manager',
'required' => 0,
'browse' => 1,
'read' => 1,
'edit' => 1,
'add' => 1,
'delete' => 1,
'details' => '{"model":"App\\User","table":"users","type":"belongsTo","column":"manager_id","key":"id","label":"email","pivot_table":"ad_store","pivot":"0"}',
'order' => 20,
])->save();
}
и запустите мои миграции db с моими пользовательскими сеялками. Если я перезагружу страницу /database/stores/bread/edit
, я получаю сообщение об ошибке для доступа к свойству не-объекта, запущенного в этой строке.
<?php if($relationshipDetails->type == 'belongsTo'): ?><?php echo e('flexed'); ?><?php endif; ?>
Это означает, что json, хранящийся в поле сведений, недействителен. Я не понимаю, как это может быть, когда дословно скопировал это на свою сеялку. Есть ли какие-то другие записи, добавленные в другую таблицу или кешированные, которые не учитываются моим сидером? Я просмотрел записи db и не нашел ничего очевидного.
ИЗМЕНИТЬ
Добавление этой строки со ссылкой на вопрос, поскольку я обнаружил, что это имеет отношение к проблеме
@php $relationshipDetails = json_decode($relationship['details']); @endphp