2015-03-13 6 views
0

Я новичок в laravel и хочу спросить, как настроить маршрут на моем сайте. Используя ресурс маршрута, я получу URI таким образом.Laravel 5 Путь цепочки нескольких моделей/контроллеров

http://www.example.com/products // List all the products 
http://www.example.com/products/create // Display a form to create a product 
... 
And so on... 

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

http://www.example.com/products/{slug}/category/{slug} 

ИЛИ

http://www.example.com/{productsSlug}/{categorySlug} 

Мои маршруты. php

<?php 

Route::get('home', '[email protected]'); 

Route::resource('products', 'ProductsController'); 
Route::resource('categories', 'CategoriesController'); 

ответ

0

Да, вы можете. Это называется вложенных маршрутизациями:

Route::resource('products.category', 'ProductsCategoryController'); 

Затем методы в этом контроллере будет просто получить идентификатор продукта/слаг в качестве первого аргумента и идентификатор категории/брусков (если таковой имеется) в качестве второго. Например:

public function index($productSlug){} 

public function show($productSlug, $categorySlug){} 

Laravel Docs - RESTful Resource Controllers

+0

Благодаря @lukasgeiter, теперь я помню. –

+0

BTW как насчет того, когда мне нравится удалять продукты в uri, как это http://www.example.com/{productSlug}/{categorySlug}. Является ли это возможным? –

+0

Да, но не с маршрутами ресурсов. Вам просто нужно будет добавить маршрут вручную. Обратите внимание, что динамический первый сегмент может быть опасным, поскольку он ловит все запросы. Если вы хотите добавить, что вы должны поместить маршрут в самый конец/конец файла маршрутов. – lukasgeiter

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