这是我的问题:我开发了一个用户可以自己添加内容的网站。该内容通过要从 db 中提取的 id 和/或别名获取标识符。目标不是为包含该内容的每个页面创建视图和控制器。我们不应该为他们寻找那些。相反,我们在 actionIndex() 中处理 URL,获取定义适当内容的 URL 部分并进一步将其加载到模板中。例如:
我们有一个主要部分产品。它的视图位于
/views/Products/index.php
我们有一个控制器:
ProductsController 扩展控制器
我们有一个默认方法 actionIndex()
所以当我们得到这样的 URL 时:
/mysite/Products/some_product_alias
...我们应该在 actionIndex() 中处理它,这样它就不会将我们引导到 404 页面,而是通过别名“some_product_alias”获取数据,将其加载到产品模板中(我猜它应该是 /views/Products/index.php 或另一页)。同时,它需要保留为静态页面定义控制器/actionMethod 的可能性,这些静态页面是站点的主要部分并且是主菜单。那就是它应该这样工作:如果它可以在控制器中找到现有的 actionMethod,它只会调用它。如果找不到它,它会寻找从 DB 中的 URL 提取的别名。如果它存在,那么它会获取数据并将其加载到模板中。当然,这项任务很容易完成,但不幸的是,我是 Yii 的新手,仍然不知道该怎么做 :( 非常感谢您的帮助!