удалось заставить его работать.
Первым шагом было использование глобальных шаблонов маршрутов ограничения для @Aboalnaga ...
Route::pattern('variableName','.*');
Каждая переменная была определена с этим шаблоном маршрута, чтобы сделать его шаблоном подстановочных знаков.
Следующим шагом было обеспечение порядка маршрута. Похоже, что при обработке маршрутов Laravel будет работать по списку маршрутов по порядку. Как только он найдет первый соответствующий маршрут, он остановится и начнет этот маршрут. Таким образом, для обработки цепочки маршрутов в форме domain.com/store/cat-1/product
, где запрос может быть для domain.com
, domain.com/store
, domain.com/store/cat-1
, domain.com/store/cat-1/product
или domain.com/some-content-page-from-database
, маршрут должен быть определен как .. .
Route::get('/store/shopping-cart', 'onlineStore@showCart');
Route::get('/store/checkout', 'onlineStore@showCheckout');
Route::get('/store/checkout/payment', 'onlineStore@showPayment');
Route::get('/store/checkout/success', 'onlineStore@showPaymentSuccess');
Route::get('/store/checkout/error', 'onlineStore@showPaymentError');
Route::get('/store/{category}', 'onlineStore@showCategory');
Route::get('/store/{category}/{product}', 'onlineStore@showProductDetails');
Route::get('{article}', 'articles@showArticle');
Определяя маршруты по порядку и определяя переменный маршрут как последний маршрут на этом уровне, переменный маршрут будет запускаться только в том случае, если предыдущие маршруты не совпадают.