使用PHP框架Yii我想要一个像url.com/xyz这样的url,其中xyz是一个参数,我想传递给一个特定的控制器(我不知道这个参数的值,因为它是动态生成的)。这可能吗?根据我的理解,Yii会将xyz视为控制器,我不确定如何在不破坏网站其他部分功能的情况下更改此内容(url.com/controller/arg/etc)
帮助? :)
答案 0 :(得分:1)
显然你可以做到这一点。例如,如果您设置了url rule
'<view:\w+>'=>'site/page',
会将url.com/xyz的任何内容视为控制器view
的操作page
的{{1}}参数。
问题是对于您必须指定某个操作的所有其他路由,换句话说,任何其他控制器的defaultAction都没有效果。
即没有上述规则的网址url.com/site将重定向到site
和site/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
,从而破坏网站的现有部分。