yii中的urlManager

时间:2011-10-09 00:12:15

标签: php url yii

'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
               'ongSpcl/<category:.*?>'=>'ongSpcl/index',
            ),
        ),

以上代码将网址“abc.co/ongSpcl/sp1”读为“abc.co/ongSpcl?category=sp1 有用! 但我的问题是我想阅读上述格式的所有网址,除了“abc.co/ongSpcl/index

2 个答案:

答案 0 :(得分:0)

在现有规则之前,为'ongSpcl/index'=>ongSpcl/index(将右侧更改为您想要的任何路线)放置规则。 Yii将执行它找到的第一场比赛。

另外,如果你的意图是这样的话,你可以使用<category:\w+>匹配任何非空字符串的字母数字字符

答案 1 :(得分:0)

从Yii Url中删除尾随index,将显示类别操作从ongSpcl#index更改为其他内容,然后添加'/ongSpcl' => 'ongSpcl/index'

'urlManager'=>array(
  'urlFormat'=>'path',
  'rules'=>array(
    '/ongSpcl' => 'ongSpcl/index',
    '/ongSpcl/<category:.*?>'=>'ongSpcl/show',
  ),
),

用于测试路线的存根

class RoutingTest extends CTestCase {
  public function createUrl($route, $params=array()) {
    $url = explode('phpunit', Yii::app()->createUrl($route, $params));
    return $url[1];
  }

  public function testCorrectRoutes() {
    $this->assertEquals('/ongSpcl', $this->createUrl('ongSpcl/index'));
    $this->assertEquals('/ongSpcl/sp1', $this->createUrl('ongSpcl/show', array('category' => 'sp1'));
    //
  }