我想创建类似的链接:
http://example.com/cat1/itemname-1
http://example.com/cat1/cat2/itemname-2
http://example.com/cat1/cat2/cat3/itemname-3
http://example.com/cat1/cat2/cat3/[..]/cat9/itemname-9
如何在yii2 UrlManager中查看规则以及如何为此创建链接?
Url::to([
'param1' => 'cat1',
'param2' => 'cat2',
'param3' => 'cat3',
'slug' => 'itemname',
'id' => 3
]);
以上代码对于多类别参数非常糟糕。 我补充一点,重要的只是最后一个参数,它意味着ID。
控制器看起来像这样:
public function actionProduct($id)
{
echo $id;
}
答案 0 :(得分:0)
下面的网址规则是这个技巧,但你必须使用控制器中的类别构建“slug”:
List<T>
生成网址:
'rules' => [
['route' => 'module/controller/product', 'pattern' => '<slug:(.*)+>/<id:\d+>', 'encodeParams' => false],
]
输出结果为:
yii\helpers\Url::toRoute(['/module/controller/product', 'slug' => 'cat1/cat2/cat3', 'id' => 1])