yii重写包含多个子类别的url

yii重写包含多个子类别的url,yii,url-rewriting,many-to-one,Yii,Url Rewriting,Many To One,我在yii工作,有一个问题: 我想创建如下url: http://domainabc.com/catalog/cat1/cat2/cat3....?sort=name&limit=10&brand=.... 它指向控制器:CatalogController、操作索引 url只是说cat1是父级,cat2是cat3的父级 因此,在这个操作中,它只获取最后一个类别的产品(例如cat3) 但目前我不知道让最后一只猫得到产品的最佳方式是什么 错误: “系统找不到请求的操作‘cat1’”

我在yii工作,有一个问题: 我想创建如下url:

http://domainabc.com/catalog/cat1/cat2/cat3....?sort=name&limit=10&brand=....
它指向控制器:CatalogController、操作索引

url只是说cat1是父级,cat2是cat3的父级

因此,在这个操作中,它只获取最后一个类别的产品(例如cat3)

但目前我不知道让最后一只猫得到产品的最佳方式是什么

错误:

“系统找不到请求的操作‘cat1’”


我们必须使用
/
来分隔每个类别。

您需要澄清的是,这个类别列表是固定的(您总是有3个级别的类别,不少于或多于),还是这个类别列表是动态的。 如果您有固定的类别列表,您可以轻松设置Yii url规则,如下所示:

'catalog/<cat1:\w+>/<cat2:\w+>/<cat3:\w+>' => 'catalog/myAction'
'<url:[a-z0-9\-_\.\/]+>' => 'myController/myAction'
'catalog//'=>'catalog/myAction'
或者更具活力:

'<controller:\w+>/<cat1:\w+>/<cat2:\w+>/<cat3:\w+>' => '<controller>/list'
'//'=>'/list'
如果您希望捕获动态类别列表,我和我的团队通常会使用我们称之为SeoBehavior的东西。我们将此行为附加到表示类别内容的模型,并在保存此行为时,基于此内容所属类别的列表构建url路径,并将其保存到seo数据库表(我们保留有关模型名称和模型id的信息,还可以有一些其他有用的配置参数)。 在您的url规则中,您可以添加如下内容:

'catalog/<cat1:\w+>/<cat2:\w+>/<cat3:\w+>' => 'catalog/myAction'
'<url:[a-z0-9\-_\.\/]+>' => 'myController/myAction'
“”=>“myController/myAction”
只有你们需要像列表上的最后一条一样保持这个规则,因为它会抓住一切。在这个动作中,你会得到这个“url”参数,然后搜索seo数据库表以获得记录,从该记录中你可以看到什么是模型名及其id,这样你就可以加载正确的内容

我希望这有帮助