Я пытаюсь использовать теги spatie/laravel вместе с Backpack для Laravel. У меня определены 2 типа тегов. В настоящее время я расширил модель тегов от тегов spatie/laravel до MyCategory и MyTag и добавил глобальные области видимости для разделения двух типов тегов. Это работает в той степени, в которой текущие категории и теги будут корректно отображаться в Backpack, но когда я попытаюсь сохранить какие-либо изменения, он сохранит только записи в последнем поле и удалит все в первом поле.
Вот моя текущая конфигурация полей для моего CRUD:
Код: Выделить всё
$this->crud->addField([
'name' => 'categories',
'label' => 'Categories',
'type' => 'select2_multiple',
'tab' => 'Overview',
'attribute' => 'name',
'model' => 'App\MyCategory',
'pivot' => true,
]);
$this->crud->addField([
'name' => 'tags',
'label' => 'Tags',
'type' => 'select2_multiple',
'tab' => 'Overview',
'attribute' => 'name',
'model' => 'App\MyTag',
'pivot' => true,
]);
Когда я проверяю Laravel Telescope, я вижу, что то же самое происходит для обоих полей. Сначала все текущие теги (независимо от типа) для сохраняемого элемента удаляются и добавляются новые теги из поля. Затем это повторяется для второго поля, что, конечно, удаляет теги из первого поля, которые также следует сохранить.
Похоже, что GlobalScope в моих расширенных моделях тегов делает это. не задерживайся в этой части. Есть ли способ повторно ввести области действия в запросы, выполняемые рюкзаком, чтобы эти теги сохранялись правильно?
Подробнее здесь:
https://stackoverflow.com/questions/620 ... ravel-crud