У меня есть 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
, но он не работал: (
Спасибоза вашу помощь !!!