Laravel Nova Order By на соответствующий запрос - PullRequest
0 голосов
/ 29 марта 2019

Мне нужно применить заказ к соответствующему запросу в 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.

...