Исключая relatableQuery в форме редактирования Laravel Nova? - PullRequest
0 голосов
/ 17 марта 2019

У меня есть 2 ресурса: продукт и инвентарь (отношение BelongsToMany)

Сводная таблица (inventory_product) имеет дополнительное поле: quantity (Хранение количества товара в инвентаре).

При использовании поля BelongToMany оно работает корректно, но в раскрывающемся списке по-прежнему отображаются все возможные параметры, даже те, которые уже прикреплены.Поэтому я использую метод relatableQuery, чтобы исключить вложенные из запроса.

public static function relatableQuery(NovaRequest $request, $query)
    {
        // Get the current resource.
        $resourceId = $request->route()->parameter('resourceId');

        // Get the array of product ids that already attached.
        $attachedItems = app(self::$model)->whereHas('inventories', function ($query) use ($resourceId) {
            $query->where('inventory_id', $resourceId);
        })->get()->pluck('id');

        return $query->whereNotIn('id', $attachedItems);
    }

Но проблема в том, что когда я перехожу к форме редактирования, чтобы настроить поле quantity, это не позволяет мне сделать этоиз-за проверки.Раскрывающееся меню пусто, потому что код выше фильтровал их.Итак, как можно избежать приведенного выше кода в режиме редактирования формы?

Я уже пытался получить parameter от NovaRequest, но он не работал: (

Спасибоза вашу помощь !!!

...