yii2 - Yii2 url 规则使用 slug 用于多个控制器,例如 domain.com/slug
问题描述
我想为以下内容设置 url 规则:www.domain.com/slug in url for multiple controllers。我有一个模型“内容”,并且在“内容”模型中有一个名为内容类型的列。例如。content_type = 1 表示比赛,content_type = 2 表示帖子,content_type = 3 表示产品等。我为每个 content_type、contestController、postController、productController 创建了一个控制器。
我想知道是否有办法为几个不同的控制器保持以下格式的 url:
'<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',
- 您应该知道,在放置指向该页面的链接时,使用哪种类型
按类型标志拆分路由器(未测试)
'<slug:[\w][\-\w]*?>/post'=>'post/view',
'<slug:[\w][\-\w]*?>/product'=>'product/view',
除此之外,我看不出它是如何工作的。
推荐阅读
- python - Pygame鼠标点击更新?
- mysql - MYSQL:触发器仅在第一次调用 SP
- ios - 视图控制器所需的便利性导致的 Swift 错误
- angularjs - 如何使用 AngularJS 设置开发环境?我无法启动和运行基本的 AngularJS 应用程序
- php - 无法从 URL 重写中获取值
- pandas - 来自 pyspark 的数据集的多处理返回 JVM 错误
- graph-theory - 如何解决修正的旅行推销员问题?
- python - 我可以改变什么来让 k-means 以 Python 中预期的方式对我的数据进行聚类?
- android - 无法读取 packageName ':generateDebugBuildConfig'
- javascript - 如果在从数据库中获取数据后选中一个复选框,如何禁用其他复选框