#laravel #laravel-nova
#laravel #laravel-nova
Вопрос:
У меня есть отношение, которое необходимо фильтровать по-разному в зависимости от поля Laravel Nova, для заполнения которого оно используется.
- Один Process_type имеет один или несколько Process_justification s, присоединенных в качестве параметров (belongsToMany)
- Один Process_type также имеет один Process_justification, установленный по умолчанию (принадлежит)
Я использую соответствующий запрос для фильтрации доступных параметров для каждого из этих двух полей.
Два поля в моем ресурсе Process_type следующие:
BelongsTo::make('Default', 'process_justification', Process_justification::class)
BelongsToMany::make('Options', 'process_justifications', Process_justification::class)
Соответствующий запрос выглядит следующим образом:
public static function relatableProcess_justifications(NovaRequest $request, $query, Field $field)
{
if ($field instanceof BelongsTo) {
//query builder to filter options
...........
} else {
//return all options
return $query;
}
}
Этот шаблон взят из документации Laravel Nova по динамическим связанным моделям (https://nova.laravel.com/docs/3.0/resources/authorization.html#dynamic-relatable-methods )
Он описывает добавление поля в качестве третьего параметра к соответствующему запросу, а затем его использование в условном для выбора логики фильтра.
Ошибка, которую я получаю, это
Слишком мало аргументов для функции App NovaProcess_type::relatableProcess_justifications(), 2 передано и ожидается ровно 3
Мои make()
вызовы имеют три параметра в соответствии с документацией, есть идеи, чего мне не хватает?
Я на Laravel 7.x и Nova 3.x
Комментарии:
1. Какая версия Nova 3?
2. Попробуйте сообщить в Github о проблемах Laravel Nova