2016-08-22 2 views
0

I создание интернет-marketn на Laravel 5.2 Нужно сделать что-то вроде breadcrumps в URL с категориями слизняк,Laravel мульти-вложенными одинаковые параметры маршрута

как так

/Каталог/{category_1}/{ category_2}/{} category_n

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

кроме того последняя категория может имеет пробкового продукт и маршрут может быть как

/Каталог/{category_1}/{category_2}/{category_n}/продукта/{product_slug}

мой маршрутизации

Route::group(['prefix' => 'catalog'], function() { 
    Route::get('/', ['as' => 'shop_catalog', 'uses' => '[email protected]']); 

    Route::group(['prefix' => '{category}'], function() { 
     Route::get('/', ['as' => 'shop_show_category', 'uses' => '[email protected]']); 

     Route::group(['prefix' => 'product/{product}'], function() { 
      Route::get('/', ['as' => 'shop_show_product', 'uses' => '[email protected]']); 
}); 

Пробный образец записи в RouteServiceProvider как

$route->pattern('category', '.*'); 

Тогда взорваться на '/' и получить последний элемент для привязки. Но не может получить параметр продукта.

Как я могу это сделать?

ответ

0

Порядок сортировки ваших маршрутов очень важен.

Как указано в списке маршрутов shop_show_category, маршрутизатор никогда не проверяет, соответствует ли ваш URL-адрес вашему маршруту shop_show_product.

Route::group(['prefix' => '{category}'], function() { 
    Route::group(['prefix' => 'product/{product}'], function() { 
     Route::get('/', ['as' => 'shop_show_product', 'uses' => '[email protected]']); 
    }); 
    Route::get('/', ['as' => 'shop_show_category', 'uses' => '[email protected]']); 
}); 

Переставляя поэтому более конкретный маршрут первых, вы знаете, что маршрутизатор будет проверять shop_show_product маршрут на матч первого. В противном случае он увидит в конце URL-адреса, который будет пытаться соответствовать маршруту shop_show_category.

Смежные вопросы