繁体   English   中英

Laravel 5使用参数命名路由

[英]Laravel 5 named route with parameter

我在laravel5上还很新,我正在尝试在route.php下动态生成路由别名

就是这个:

Route::get('/menu/{category}/{product}/{item}', 'MenuController@listItem')->name('/{category}/{item}');

我已经尝试过使用“ as”和“ uses”,但仍然得到:

/menu/{category}/{product}/{item}

将所有参数替换为正确的值,而不是:

/{category}/{item}

试试吧:

Route::get('/menu/{category}/{product}/{item}', ['as' => 'a.name.to.your.route' , 'uses' => 'MenuController@listItem']);

解释Vinicius Luiz所说的话。

Route::get('/menu/{category}/{product}/{item}', ['as' => 'named.route' , 'uses' => 'MenuController@listItem']);

// to get the actual linke
route('named.route', ['category' => $category->id, 'product' => $product->id, 'item' => $item->id]);

取决于,您可能不执行-> id或其他任何操作,您可能只传递了整个$ category,$ product等。取决于控制器中路由的设置方式。

编辑:从您的评论,它就像您想要的东西:

class MenuController {
    public function lisItem($category_name, $product_name) {
        $category = Category::where('name', $category_name)->first(['id']);
        $product = Product::where('category_id', $category->id)->where('name', $product_name')->first();
    }
}

Route::get('/{category}/{item}', ['as' => 'named.route' , 'uses' => 'MenuController@listItem']);

// to get the actual linke
route('named.route', ['category' => $category->id, 'item' => $item->id]);

可能有更好的方法来执行查询,但这应该对您有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM