我一直很难理解Yii的URL Manager。我有一个转到此createurl('site/category',array('id'=$id))
的网址,但它不起作用:
站点/类别/ 1?猫=附件
当我到这个URL时,它可以工作:
/站点/类别/ ID / 1?猫=附件
如果我应该自定义编写它,它是否属于组件?如果是这样,下一步会是什么?不幸的是,我只是不理解这一点。
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'appendParams' => true,
'rules'=>array(
'site/category/id/<id:\d+>/<item:\w+>'=>'<controller>/<action>',
'<module:\w+>/<controller:\w+>/<action:\w+>'=>'<module>/<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
答案 0 :(得分:0)
这个
createurl('site/category',array('id'=$id))
应该是:
createurl('site/category',array('id' => $id))
您想要生成什么网址?
您的规则会生成
site / category / id / {number goes here} / itemInLetters
为了你的工作,你需要使用item参数传递它:
createurl('site/category',array('id' => $id, 'item' => 'MyItem'))
答案 1 :(得分:0)
只需改变你的规则:
'rules'=>array(
'site/category/<id:\d+>/<item:\w+>'=>'<controller>/<action>', // removed id
.
.
.
),