我正在开发基于cms的Yii应用程序。我最近完成了后端的页面,现在可以从数据库中获取页面。如何为Yii请求的动态页面设置站点/域控制器
问题始于获取请求的URL并呈现动态布局。
什么是去了解这一点的最好方法是什么?就像使用起始站点/域控制器一样,我该如何设置它?
使用CMenu进行渲染的模板效果很好。该菜单显示在前端。以下是我目前使用的/ home和/ company/products菜单链接的示例。它使用干净的网址。
<ul id="yw0">
<li class="active"><a href="/home">Home</a></li>
<li><a href="/about_us">About us</a></li>
<li><a href="/company">Company</a></li>
<ul>
<li><a href="/company/products">Products</a></li>
<li><a href="/company/services">Services</a></li>
</ul>
<li><a href="/contact">Contact</a></li>
</ul>
但是,这是一个点。该布局需要从后端的特定页面动态加载。每个页面可以有不同的布局。数据库中有一列。因此,例如url:“http://example.com/home”需要加载'protected/views/layouts/main.php'
目前链接如:“http://example.com/company/products”不会去任何地方。这很明显,因为这些链接不存在并且是动态创建的。
我想我需要做两件事情:
- 来拨打startController每个请求到达,并且将处理的页面和布局的加载。
- 和两个一些设置与干净的Url。?
就是这样。
我可以想象它没有太多的工作。但它让我头疼。
尤其是干净的网址。他们一直对我感到困惑。
index.php?r =站点/索引将转到siteController和动作索引。
但这不是我想要的。我也尝试设置'urlManager',但它去了一个控制器和一个动作。像page/default/view/id /。但我不想去一个动作,而只是从数据库加载(下一个)所请求的页面(具有不同的布局)的开始控制器。
我需要设置干净的URL某处配置文件main.php
希望它很容易明白我想实现。任何帮助是极大的赞赏。
感谢您的答复。事情是在控制器中设置代码的布局并不是真正的动态。但主要问题是我如何做一个启动控制器。一个入口控制器。和干净的网址。我再次尝试过网址管理器。现在它转到:yiitest/frontend/index.php/home。正如你可以看到它使用数据库中的主页URL。但我得到 错误404 无法解决请求“家”。 但是如何以及在哪里设置入口控制器。 “protected/controllers /”中的SiteController和pageController不会被调用。 编辑:对不起,第一次使用stackoverflow – Minahalmon 2013-03-07 11:14:17