Мне нужно применить заказ к соответствующему запросу в Laravel Nova.
Я попробовал все на этой странице https://github.com/laravel/nova-issues/issues/156 и не могу получить подробные методы для работы с моим приложением.
У меня есть 3 модели, значимые для этой проблемы; Событие, марка и автомобиль.
События принадлежат многим брендам | Бренды принадлежат многим событиям
Марка имеет много транспортных средств | Транспортные средства принадлежат бренду
Событие принадлежит многим транспортным средствам | Транспортные средства принадлежат многим событиям
Когда пользователь создает событие, он затем выбирает бренды, связанные с этим событием.
Этого можно добиться, поместив приведенную ниже строку в функцию fields в моем ресурсе Nova Event.
BelongsToMany::make('Brand')->sortable(),
После того, как пользователь прикрепил связанные бренды, он затем присоединяет связанные транспортные средства.
Список транспортных средств заполняется с помощью соответствующего запроса, который я имею в своем ресурсе событий Nova;
public static function relatableVehicles(NovaRequest $request, $query)
{
$event = $request->findResourceOrFail();
$brand_ids = [];
foreach($event->brand as $brand) {
$brand_ids[] = $brand['id'];
}
return $query->whereIn('brand_id', $brand_ids);
}
Теперь, когда я иду прикреплять Транспортное средство, оно заполняется только Транспортными средствами, которые связаны с Брендами, прикрепленными к Событию.
Проблема в том, что опции в предоставленном поле выбора упорядочены по названию.
У меня есть ниже в моем ресурсе Vehicle, который, я думаю, является источником проблемы;
public static $title = 'model';
Но, очевидно, мне нужно это в Ресурсе, чтобы окно выбора отображалось соответствующим образом.
Кто-нибудь знает, как я могу заказать что-то, кроме названия? Я пытаюсь сделать заказ по brand_id.