已知控制器名称,如何获取该控制器的默认action?

例如,已知 Abc控制器这个名称(当前并非在Abc控制器下),要获取它的默认action

CController::defaultAction

只知道控制器名称,并没有控制器实例的情况下怎么获取defaultAction? 是否得手工实例化控制器?

是的。不过你为什么要知道default action呢?如果是构造URL的话,缺省动作可以不出现的啊

被你猜对了,确实是在创建url时候,所涉及到的问题~

使用 langhandler,然后需要搭配以下路由规则:


'rules' => array(

    '<lang:(zh_cn|en_us)>' => '',

    '<lang:(zh_cn|en_us)>/<_c>' => '<_c>',

    '<lang:(zh_cn|en_us)>/<_c>/<_a>' => '<_c>/<_a>',

),



才可以适合缺省模式的构建url~

本来想让路由规则只保持一个完整的规则,然后去改写 createUrl() 方法,以达到目的~

后来想想,还是给三条规则比较划算~,至少现在还没有出现问题~ :)