Yii路由-如何放置控制器


Yii routing - how to put that controller

我需要为以下url模式执行路由:

website.com/some-category-name
website.com/some-category-name/entryName

某些类别名称将是可变的-类别的某些名称

如何为此配置路由?我需要输入以前的控制器,例如:

website.com/account
website.com/regiter

并希望所有没有控制器名称(也将是类别名称(的东西都转到控制器类别。

我做不出来。

使用

'urlManager' => array(
        'urlFormat' => 'path',
        'showScriptName' => false, 
        'rules' => array(
            'categoryName/<categoryName:'w+>' => array('site/category'),
            'register' => array('site/register'),
            'account' => array('site/account')
        ),
    ),

首先必须声明"非类别"操作的所有规则,然后是动态规则(与类别和antry相关(:

'urlManager' => array(
    'urlFormat' => 'path',
    'showScriptName' => false, 
    'rules' => array(
        // for example if your account and register actions in user controller
        // ... you can write
        'account' => 'user/account',
        'register' => 'user/register',
        // or with one rule
        '<action(account|register)>' => 'user/<action>',
        // and for all other 'static actions', such as login, logout ...
        // after yhat you can declire dynamic rules
        '<categoryName:'w+>' => 'category/index',
        '<categoryName:'w+>/<entryName:'w+>' => 'category/entry'
    ),
),

因此,代码Yii::app()->createUrl('user/register')将生成url website.com/register,因此url website.com/register"转到">用户控制器的注册操作(所有其他静态规则都是这样(。

现在动态规则:代码

Yii::app()->createUrl('category/index', array(
    'categoryName' => 'first-category-name'
)) 

将生成urlwebsite.com/第一类别名称,反之亦然:urlwebsite.com/第一分类名称"转到">类别/索引操作,其中将有$_GET['categoryName']参数,该参数将等于">第二类别名称"․

相应代码

Yii::app()->createUrl('category/index', array(
    'categoryName' => 'some-category-name',
    'entryName' => 'some-entry-name'
))

将生成url网站.com/某个类别名称/某个条目名称,在类别/条目操作中,您可以获得等于">某些类别名称_get['categoryName']和等于一些条目名称的$_get['entryName'][strong>。

我希望这能帮助你了解Yii中的工作规则。

谢谢!