我需要为以下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中的工作规则。
谢谢!