- 的Yii ::应用程序() - >请求 - > getParam( 'pageSlug')
- 的Yii ::应用程序() - >请求 - > getParam( 'articleSlug')
找到该页面的正确文章
我已经很好地利用了Yii Framework,现在我想更深入一点,我想要做的是设置一个应用程序,其中几个不同的URL指向同一个控制器。
通常,domain.com/content将指向类ContentController,它是MVC中的标准。
我想要做的是设置三个控制器(可能更多,但这将开始),即ArticlesController,DisplayController和SplashController。
然后,我会为客户端设置基本上是CMS,并且他们可以根据需要创建任意数量的页面,并将它们指向上述三个控制器,我已经设置了这些控制器来处理数据。
因此,例如我的客户可以设置以下页面:新闻,通知,技术,并让它们都指向ArticlesController,还设置页面:管理,特价,支持,并让它们全部指向DisplayController。 / p>
我知道所有这些控制器都可以使用Gii模块创建,但在这种情况下它不是一个选项,因为我认为这不适合非技术人员。
我只是希望我的客户能够登录CMS,决定他想创建一个名为“randompage”的新页面,使用下拉菜单将其指向ArticlesController,然后为它编写一堆文章,现在可以通过domain.com/randompage/article-1 domain.com/randompage/article-2
访问这些文章标准设置指向站点/错误,因为没有控制器RandompageController
到目前为止我所做的是在Controller类中创建一个构造函数,我可以在其中覆盖控制器id
class Controller extends CController {
function __construct($id) {
// Code here which successfully pulls from the database
// which controller the current page should point to.
parent::__construct($newControllerID)
}
}
如果我签入CController类,$ this-> _id =文章,显示或启动但应用程序本身仍会加载网站/错误
我猜我必须在其他地方设置/覆盖控制器。我试过了
Yii::app()->setController($newControllerID)
但这没有任何影响
也许Yii已经设置好,并且必须为每个URL设置一个特定的控制器,但这意味着要为客户开发相当严格的解决方案,并要求他们每次想要添加新控制器时都要在开发人员中调用。
希望我已经解释了我想要做的事情。
答案 0 :(得分:0)
配置你的urlManager:
'<pageSlug>/<articleSlug>' => 'article/view'
找到该页面的正确文章