Возможны ли BelongsToMany с полями условных данных в Nova? - PullRequest
0 голосов
/ 28 мая 2019

У меня есть сценарий использования Nova, который я не знаю, как подойти.Вот как я представляю, что дела идут вниз: у меня есть общая модель Product, к которой было бы прикреплено множество различных моделей Attribute на основе отношения «многие ко многим» с использованием сводной таблицы.Сводная таблица также связывает данные (возможно, в форме JSON) с моделями атрибутов.

Допустим, у нас есть атрибут с именем «том» и он имеет тип «число».При подключении (в терминах Nova) тома Attribute к Product пользователь также вводит число, которое затем будет сохранено в сводной таблице.

Тогда у нас также есть Attribute с именем'color', который будет иметь тип 'select' и поле 'options' с фиксированным списком цветов.При присоединении цвета Attribute к Product пользователю будет предложено использовать раскрывающийся список, в котором он будет выбирать цвет из фиксированного списка цветов.

В настоящее время представляется, что поле Nova BelongsToManyне допускает такой вариант использования, поскольку в функции ->fields() поля BelongsToMany нет способа сделать условную логику.В настоящее время я заблудился относительно того, как я мог бы обойти ограничения.

Моя текущая лучшая идея - либо расширить поле BelongsToMany (как на стороне PHP, так и на стороне Vue) так, чтобы оно учитывало ранее описанные условные выражения.логика или создание «хакерского» пользовательского поля, которое входит в функцию ->fields(), которая удаляет исходное поле BelongsToMany select из DOM и заменяет его собственным.Настраиваемое поле будет извлекать необходимые данные и отображать соответствующие поля данных.

TL; DR: я хочу присоединить модель Attribute к модели Product и отображать только определенные поля сводки в зависимости от Attribute значение модели type.

Кто-нибудь сталкивался с подобными встречами с полями meta / pivot, которые требуют дополнительных данных в Nova?

...