В необязательном параметре Laravel отсутствуют обязательные параметры - PullRequest
1 голос
/ 14 октября 2019
Route::get('/products/{page?}', 'ProductController@index')->name('products');
Route::get('/products/{category}/{page?}', 'ProductController@index')->name('products');

Я создал два маршрута.

Первый для всех продуктов, другой для категорий.

Я получил ошибку:

Отсутствует обязательнопараметры для [Маршрут: продукты] [URI: продукты / {категория} / {страница?}].

Это laravel: 5.5

Я называю все продукты следующим образом:

{{ route('products') }}

Ответы [ 3 ]

1 голос
/ 14 октября 2019

Измените название своего маршрута на

Route::get('/products/{page?}', 'ProductController@index')->name('products');
Route::get('/products/{category}/{page?}', 'ProductController@index')->name('product.category');

Для маршрута продукта:

{{ route('products') }}

Для маршрута категории:

{{ route('product.category') }}
0 голосов
/ 14 октября 2019

Два маршрута не могут иметь одинаковые имена, и вы делаете это. Измените название вашего маршрута на:

Route::get('/products/{page?}', 'ProductController@index')->name('products');
Route::get('/products/{category}/{page?}', 'ProductController@index')->name('category.products');

, и тогда вы сможете звонить по таким маршрутам, как:

{{ route('products') }}
{{ route('category.products', ['category' => $category->id) }}

Спасибо.

0 голосов
/ 14 октября 2019

Столкновение имен вашего маршрута конфликтует, вам нужно дать вашим маршрутам уникальные имена.

Route::get('/products/{page?}', 'ProductController@index')->name('products.page');
Route::get('/products/{category}/{page?}', 'ProductController@index')->name('products.category.page');

Назовите маршрут с новым именем.

{{ route('products.page') }}

Если вы хотите получитьмаршрут для маршрута с параметром категории.

{{ route('products.category.page', $category) }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...