使用了sidewinder 写的扩展
http://www.yiiframework.com/extension/langhandler/
现在面临创建url的问题。
定义了一个路由规则:
'rules' => array(
'<lang:(zh_cn|en_us)>/<_c>/<_a>' => '<_c>/<_a>',
),
当前路径:http://abc.com/zh_cn/misc/config
创建url:
createUrl(’/’) --> http://abc.com/lang/zh_cn
createUrl(‘node’) --> http://abc.com/node/lang/zh_cn
createUrl(’/node’) --> http://abc.com/node/lang/zh_cn
createUrl(‘node/’) --> http://abc.com/node/lang/zh_cn
createUrl(‘node/index’) --> http://abc.com/zh_cn/node/index
从上面可以看到,只有把控制器和动作都写完整了,才生成所希望的url,
好像在文档中,也没有看到获取默认控制器索引页的方法?不知道 createUrl(’/’) 是否正确?
我后来自己添加了一些规则如:
'rules' => array(
'<lang:(zh_cn|en_us)>/<_c>/<_a>' => '<_c>/<_a>',
'<lang:(zh_cn|en_us)>/<_c>' => '<_c>',
'<lang:(zh_cn|en_us)>' => 'site',
),
但也未能够很好的生成url,也不够优雅~
我想,是否可以通过设置路由的默认值来解决? 可是看源码,好像没有看到这样的设置参数。
BTW: yii路由是否有个默认规则?还是硬编码到url解析去了?
请教了~