Yii控制器作为URL中的变量

时间:2012-07-16 16:46:15

标签: php yii

使用PHP框架Yii我想要一个像url.com/xyz这样的url,其中xyz是一个参数,我想传递给一个特定的控制器(我不知道这个参数的值,因为它是动态生成的)。这可能吗?根据我的理解,Yii会将xyz视为控制器,我不确定如何在不破坏网站其他部分功能的情况下更改此内容(url.com/controller/arg/etc)

帮助? :)

2 个答案:

答案 0 :(得分:1)

显然你可以做到这一点。例如,如果您设置了url rule

'<view:\w+>'=>'site/page',

会将url.com/xyz的任何内容视为控制器view的操作page的{​​{1}}参数。

问题是对于您必须指定某个操作的所有其他路由,换句话说,任何其他控制器的defaultAction都没有效果。

即没有上述规则的网址url.com/site将重定向到sitesite/index site/page以上规则

答案 1 :(得分:0)

指南的“网址管理”一章对此进行了解释:http://www.yiiframework.com/doc/guide/1.1/en/topics.url

以下规则会将请求发送到example.com/foo到myaction中的操作mycontroller,将值foo赋给参数name

 '<name>' => 'mycontroller/myaction'

此规则应该是规则列表中的最后一个。否则,所有请求都将传递给myaction,从而破坏网站的现有部分。