【发布时间】:2013-03-07 10:03:47
【问题描述】:
我正在开发一个基于 cms 的 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=site/index 将转到 siteController 和操作索引。
但这不是我想要的。我还尝试设置“urlManager”,但它转到了一个控制器和一个动作。喜欢页面/默认/视图/id/。但是我不想执行操作,而只是启动控制器从数据库加载(下一个)请求的页面(具有不同的布局)。
我需要在配置文件 main.php 的某处设置干净的 url
希望很容易理解我想要实现的目标。非常感谢任何帮助。
【问题讨论】:
标签: yii frontend clean-urls entry-point