我正在开发基于 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,每个请求都会发送到它,它将处理页面和布局的加载。
- 还有两个带有干净网址的设置。?
而已。
我可以想象这不是很多工作。但这让我很头疼。
特别是干净的网址。他们总是让我有点困惑。
index.php?r=site/index 将转到 siteController 和操作索引。
但这不是我想要的。我还尝试设置“urlManager”,但它转到了一个控制器和一个动作。喜欢页面/默认/视图/id/。但是我不想执行操作,而只是启动控制器从数据库加载(下一个)请求的页面(具有不同的布局)。
我是否需要在配置文件 main.php 的某处设置干净的 url
希望很容易理解我想要实现的目标。任何帮助是极大的赞赏。