J'ai mis à niveau vers Laravel 5.5 et Voyager 1.0 et j'utilise mysql sur une boîte vagabonde.Impossible de recréer DataRow pour la relation dans Laravel Voyager
Je souhaite ajouter une entrée dans la table data_rows pour une relation entre un utilisateur et un magasin. Je suis capable de créer l'entrée en utilisant le gui du Voyager.
Ce qui crée l'entrée de table correspondante Quand je copie toutes ces valeurs dans mon semeuse
$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();
}
et exécuter mes migrations db avec mes semoirs personnalisés, Si je recharge la page /database/stores/bread/edit
Je reçois une erreur pour accéder à la propriété d'un non-objet déclenché sur cette ligne.
<?php if($relationshipDetails->type == 'belongsTo'): ?><?php echo e('flexed'); ?><?php endif; ?>
Ce qui implique que le json stocké dans le champ de détails n'est pas valide. Je ne comprends pas comment cela peut être quand je l'ai copié dans mon semain mot pour mot. Y a-t-il une autre entrée ajoutée sur une autre table ou en cache que mon semoir ne prend pas en compte? J'ai parcouru les entrées db et je ne trouve rien d'évident.
EDIT
L'ajout de cette ligne en référence à la question que je l'ai découvert était pertinent au problème
@php $relationshipDetails = json_decode($relationship['details']); @endphp