Проблема настройки отношений в BREAD для моделей, использующих администратор Voyager для Laravel - PullRequest
0 голосов
/ 10 марта 2020

Я создаю веб-сайт в Laravel и использую Voyager для интерфейса администратора для базы данных. Когда я создаю новую модель, я также создаю начальный файл для настройки разрешений и BREAD для этой таблицы.

Это прекрасно работает, если модель не связана с другими моделями. Но когда я добавляю отношения к семенам ХЛЕБА, они только частично работают. Я могу отобразить отношение в моих просмотрах или чтениях, но ничего не происходит, если я пытаюсь изменить связанные данные во время редактирования. Если я сохраню ХЛЕБ в Voyager - , то есть не внося изменений и просто сохраняя то, что уже есть - отношение внезапно начинает работать.

Пример. События связаны с местоположениями отношением ownTo. Моя модель событий настроена правильно, и проверка данных в повозке демонстрирует правильное поведение. Мой начальный файл событий содержит это для установки отношения BREAD:

$dataRow = $this->dataRow($eventDataType, 'event_belongsto_location_relationship');
        if (!$dataRow->exists) {
            $dataRow->fill([
                'type'         => 'relationship',
                'display_name' => 'Location',
                'required'     => 1,
                'browse'       => 1,
                'read'         => 1,
                'edit'         => 1,
                'add'          => 1,
                'delete'       => 0,
                'details'      => [
                    'model'       => 'App\\Location',
                    'table'       => 'locations',
                    'type'        => 'belongsTo',
                    'column'      => 'location_id',
                    'key'         => 'id',
                    'label'       => 'name',
                    'pivot_table' => 'locations',
                    'pivot'       => '0',
                ],
                'order'        => 6,
            ])->save();
        }

Исходный файл работает без ошибок.

Когда я обновляю sh и заполняю базу данных, в ХЛЕБЕ появляется связь:

screen shot of BREAD relationship

, и я могу изменить местоположение на моем экране редактирования:

enter image description here

и запись события сохраняется без ошибок, но новое местоположение не сохраняется.

Все, что мне нужно сделать, чтобы «исправить» эту проблему - это go вернуться в меню «Инструменты - ХЛЕБ», выбрать мою таблицу событий, отредактировать ХЛЕБ и сохранить его. Мне не нужно ничего менять. Просто сохраните это. И, насколько я могу судить, единственное, что изменяется в строке базы данных для этого отношения, это отметка времени обновления.

Есть ли у вас какие-либо идеи, что может быть не так? Я не могу понять, что с моим семенем неверно и что меняется между посевом и сохранением.

...