Yii2 url 规则使用 slug 用于多个控制器,例如域。com/slug
Yii2 url rules using slug for multiple controllers eg domain.com/slug
我想为多个控制器设置 url 规则,例如:www.domain.com/slug in url。我有一个模型 "Content" 并且在 "Content" 模型中有一个名为内容类型的列。例如。 content_type = 1 表示竞赛,content_type = 2 表示 post,content_type = 3 表示产品等。我为每个 content_type 创建了一个控制器,比赛控制器,post控制器,产品控制器。
我想知道是否有办法让 urls 为几个不同的控制器保持以下格式:
'<slug:.*?>'=>'contest/view', // content type contest - contestController
'<slug:.*?>'=>'post/view', // content type post - postController
'<slug:.*?>'=>'product/view', // content type product - productController
根据 yii 文档,它仅适用于上述一条规则。
不是直接的答案,但是,您是否考虑过其他方法?
将所有内容发送到 1 个控制器
'<slug:.*?>'=>'post/view',
- 在前端部分用户将不知道实际使用的是哪个控制器,但是您可以通过 slug 找到模型后检测类型。
按控制器拆分路由器
'post/<slug:.*?>'=>'post/view',
- 你应该知道,将 link 放置到该页面时,使用的是哪种类型
按类型标志拆分路由器(未测试)
'<slug:[\w][\-\w]*?>/post'=>'post/view',
'<slug:[\w][\-\w]*?>/product'=>'product/view',
除此之外,我不知道它是如何工作的。
我想为多个控制器设置 url 规则,例如:www.domain.com/slug in url。我有一个模型 "Content" 并且在 "Content" 模型中有一个名为内容类型的列。例如。 content_type = 1 表示竞赛,content_type = 2 表示 post,content_type = 3 表示产品等。我为每个 content_type 创建了一个控制器,比赛控制器,post控制器,产品控制器。
我想知道是否有办法让 urls 为几个不同的控制器保持以下格式:
'<slug:.*?>'=>'contest/view', // content type contest - contestController
'<slug:.*?>'=>'post/view', // content type post - postController
'<slug:.*?>'=>'product/view', // content type product - productController
根据 yii 文档,它仅适用于上述一条规则。
不是直接的答案,但是,您是否考虑过其他方法?
将所有内容发送到 1 个控制器
'<slug:.*?>'=>'post/view',
- 在前端部分用户将不知道实际使用的是哪个控制器,但是您可以通过 slug 找到模型后检测类型。
按控制器拆分路由器
'post/<slug:.*?>'=>'post/view',
- 你应该知道,将 link 放置到该页面时,使用的是哪种类型
按类型标志拆分路由器(未测试)
'<slug:[\w][\-\w]*?>/post'=>'post/view',
'<slug:[\w][\-\w]*?>/product'=>'product/view',
除此之外,我不知道它是如何工作的。