Yii 向URL管理器添加ID

Yii 向URL管理器添加ID,yii,yii-url-manager,Yii,Yii Url Manager,我一直很难理解Yii的URL管理器。我有一个URL指向这个createurl'site/category',数组'id'=$id,但它不起作用: 现场/类别/1?类别=附件 当我转到此URL时,它会起作用: /站点/类别/id/1?类别=附件 如果我要自定义它,它会在组件下面吗?如果是,下一步是什么?不幸的是,我不明白这一点 'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false, 'app

我一直很难理解Yii的URL管理器。我有一个URL指向这个createurl'site/category',数组'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>',
  ),
这个

createurl'site/category',数组'id'=$id

应该是:

createurl'site/category',数组'id'=>$id

您试图生成什么URL

你的规则说会产生

site/category/id/{number go here}/iteminleters

要使您的工作正常,您需要通过以下项参数创建它:


createurl'site/category',array'id'=>$id',item'=>'MyItem'

只需更改规则如下:

'rules'=>array(
    'site/category/<id:\d+>/<item:\w+>'=>'<controller>/<action>', // removed id
    .
    .
    .
  ),

是的,这是个打字错误。是的,还有另一个'item'=>'MyItem'我有类似'site/category',array'id'=>1,'cat'=>blah的东西,但不管我在url规则中做了什么更改,它只会转到site/category/1?cat=blah