У меня есть маршрут, требующий четыре аргумента для использования в методе создания контроллера ресурсов.Однако всякий раз, когда я пытаюсь передать больше двух, в любой комбинации я получаю «Пропущенные обязательные параметры».
Я пробовал оба передать их как массив аргументов с помощью route () или создать URL-адрес.прямо с тем же результатом.Если протестировать его, опустив любой из двух аргументов, определенных для маршрута в web.php, он работает просто отлично (как для route (), так и для прямого URL).
Я посмотрел, но ничего не могу найтина макс на количество аргументов.Но в то же время я не понимаю, почему он принимает 2 аргумента нормально, но останавливается на одном.
Определенный маршрут
Route::get('formicare/{user_slug}/{taskable_name}/{taskable_slug}/tasks/create/{action_name}', 'TaskController@create')->name('tasks.create');
Route::resource('formicare/tasks', 'TaskController', ['except' => ['create']]);
URL в блейде с маршрутом ()
<a class="btn btn-primary" href="{{ route('tasks.create', ['user_slug' => $user->slug, 'taskable_name' => 'colonies', 'taskable_slug' => $colony->slug, 'action_name' => 'give_meal']) }}">
Meals
</a>
URL в записанном маршруте
<a class="btn btn-primary" href="/formicare/{{$user->slug}}/colonies/{{$colony->slug}}/tasks/create/give_meal">
Meals
</a>
Оба из них дают ошибку
Missing required parameters for [Route: tasks.create] [URI: formicare/{user_slug}/{taskable_name}/{taskable_slug}/tasks/create/{action_name}]. (View: C:\laragon\www\antheap\resources\views\colonies\show.blade.php)
Контроллер (пустой для тестирования, но яне думаю, что проблема здесь)
public function create($user_slug, $taskable_name, $taskable_slug, $action_name)
{
dd('halt');
}
Однако, если я сделаю это с меньшим количеством аргументов, обе версии работают, то я отправлю меня в метод контроллера очень хорошо (конечно, после удаления избыточных аргументов вверсия маршрута () для сокращенных аргументов).И я могу переключаться между любыми двумя из четырех аргументов, но всякий раз, когда я пытаюсь добавить третий, он ломается.
Route::get('formicare/{user_slug}/colonies/{taskable_slug}/tasks/create/give_meal', 'TaskController@create')->name('tasks.create');