Php Laravel 5路线链接多个模型/控制器

Php Laravel 5路线链接多个模型/控制器,php,laravel-5,Php,Laravel 5,我是新来的拉威尔,想问我如何才能设置我的网站路线。使用路由资源,我将得到如下URI 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.c

我是新来的拉威尔,想问我如何才能设置我的网站路线。使用路由资源,我将得到如下URI

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}

My routes.php

<?php

Route::get('home', 'PagesController@home');

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

是的,你可以。这称为嵌套路由:

然后,该控制器中的方法将只接收产品id/slug作为第一个参数,接收类别id/slug(如果可用)作为第二个参数。例如:

public function index($productSlug){}

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

谢谢@lukasgeiter,现在我想起来了。顺便问一下,当我想删除uri中的产品时,比如{productSlug}/{categorySlug},该怎么办。有可能吗?是的,但没有资源路线。您只需要手动添加路线。请注意,动态第一段可能很危险,因为它捕获所有请求。如果要添加到何处,则应将管线放置在管线文件的最末端/底部。
Route::resource('products.category', 'ProductsCategoryController');
public function index($productSlug){}

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