0

我一直很难理解 Yii 的 URL Manager。我有一个指向此的 URL,createurl('site/category',array('id'=$id))但它不起作用:

站点/类别/1?cat=附件

当我转到此 URL 时,它可以工作:

/site/category/id/1?cat=附件

如果我应该自定义编写它,它会在组件下吗?如果是这样,下一步将是什么?不幸的是,我只是不明白这一点。

'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>',
  ),
4

2 回答 2

0

这个

createurl('site/category',array('id'=$id))

应该:

createurl('site/category',array('id' => $id))

您要生成什么 URL?

你的规则说会产生

site/category/id/{number 在这里}/itemInLetters

为了您的工作,您需要使用 item 参数传递 create 它:

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

于 2014-03-09T00:20:26.403 回答
0

只需像这样更改您的规则:

'rules'=>array(
    'site/category/<id:\d+>/<item:\w+>'=>'<controller>/<action>', // removed id
    .
    .
    .
  ),
于 2014-03-09T06:57:21.403 回答