Laravel назначает одиночный маршрут с слизнями различного размера - PullRequest
0 голосов
/ 06 мая 2019

Мне нужен способ создания маршрута, который позволял бы переменное количество слагов, поэтому мне не нужно создавать более 10 маршрутов к тому же методу контроллера.Это должно позволить администратору сайта создать структуру стилей папок категорий страниц и содержимого без ограничения.

Тогда маршрут будет исключать любой из них и передавать массив слагов в контроллер:

  • www.site / designs / paint /
  • www.site / designs / paint / pointalism /
  • www.site / конструкций / краска / pointalism / портрет

Как я могу добиться этого без использования параметров получения?

Текущие маршруты:

 Route::get('/designs/{catagory1}', 'DesignController@catagories')->name('design.items');
 Route::get('/designs/{catagory1}/{catagory2}', 'DesignController@catagories')->name('design.items');
 Route::get('/designs/{catagory1}/{catagory2}/{catagory3}', 'DesignController@catagories')->name('design.items');
 Route::get('/designs/{catagory1}/{catagory2}/{catagory3}/{catagory4}', 'DesignController@catagories')->name('design.items');
 Route::get('/designs/{catagory1}/{catagory2}/{catagory3}/{catagory4}/{catagory5}','DesignController@catagories')->name('design.items');
 ..etc

Желаемые маршруты:

 Route::get('/designs/{catagories}', 'DesignController@catagories')->name('design.items');

1 Ответ

0 голосов
/ 06 мая 2019

Чтобы сказать Laravel, чтобы передать полные параметры контроллеру, вы должны добавить where , например:

Route::get('designs/{query}', 'DesignController@catagories')->where('query','.+')

По сути, это соответствует .+ для {query}, в этом случае он просто будет соответствовать чему угодно.

Затем вы можете использовать explode('/', $theUrlParam) в своем коде, чтобы получить все части в массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...