Laravel Nova - области взаимосвязи полей

Есть ли способ добавить область действия к полям BelongsToMany, чтобы при присоединении связанных моделей вы могли делать это только из ограниченных параметров?

Пример:

Сообщение принадлежит многим тегам (с использованием тегов Spatie / Laravel). Теги принадлежитToMany Сообщениям.

Модель тегов имеет свойства id, name, slug, type и timestamp.

В представлениях "Подробности" или "Обновить" я хотел бы иметь возможность прикреплять теги к публикации.

Использование поля BelongsToMany по умолчанию (или стороннего пакета) на ресурсе Post позволяет мне добавлять теги в Post.

Приложение \ Nova \ Post.php

public function fields(Request $request)
{
            BelongsToMany::make('Tags'),
}

Однако я хотел бы иметь возможность добавлять только теги where type = 'Books' к этой модели.


person Adnan    schedule 27.12.2019    source источник


Ответы (1)


Если вы используете пакет Spatie Tags, я бы предложил использовать их пакет Nova Tags. Затем вы можете добавить следующее к своим определениям полей:

Tags::make('Tags')->type('books'),

Это ограничит доступные теги для этого ресурса тегами типа books. См. Запись в пакете Nova Tags и в базе Пакет Spatie Tags

person Govert Verschuur    schedule 28.12.2019