如何在urlManager';Yii的规则是什么?
我以如何在urlManager';Yii的规则是什么?,url,yii,get,params,yii-url-manager,Url,Yii,Get,Params,Yii Url Manager,我以GET参数q的形式将查询字符串传递给SearchController::actionDefault: /search/?q=… 但是,我需要定义一个规则,该规则将自动使用某个值初始化此参数或定义另一个参数 如果我请求mysite.com/showall我需要获得与/search/?q=* 这就是我尝试过的: '/showall'=>'/search/default/index/?r=*',我解决了这个问题 可以在urlManager中设置defaultParams,最后在应用程序配置文件中如
GET
参数q
的形式将查询字符串传递给SearchController::actionDefault
:
/search/?q=…
但是,我需要定义一个规则,该规则将自动使用某个值初始化此参数或定义另一个参数
如果我请求mysite.com/showall
我需要获得与/search/?q=*
这就是我尝试过的:
'/showall'=>'/search/default/index/?r=*',
我解决了这个问题
可以在urlManager中设置defaultParams,最后在应用程序配置文件中如下所示:
...
'components' => array(
...
'urlManager' => array(
...
'rules' => array(
....
'/show_all' => array( '/search/default/index', 'defaultParams' => array('show_all'=>'-') ),
....
),
...
),
...
),
...
“组件”=>数组(
...
“urlManager”=>数组(
...
'规则'=>数组(
....
'/show_all'=>array('/search/default/index',defaultParams'=>array('show_all'=>'-')),
....
),
...
),
...
),
我解决了这个问题
可以在urlManager中设置defaultParams,最后在应用程序配置文件中如下所示:
...
'components' => array(
...
'urlManager' => array(
...
'rules' => array(
....
'/show_all' => array( '/search/default/index', 'defaultParams' => array('show_all'=>'-') ),
....
),
...
),
...
),
...
“组件”=>数组(
...
“urlManager”=>数组(
...
'规则'=>数组(
....
'/show_all'=>array('/search/default/index',defaultParams'=>array('show_all'=>'-')),
....
),
...
),
...
),
当您收到不同的请求并且需要将其映射到相同的
GET
param时,接受的答案也会起作用
例如,我想要所有这些请求:
user/pics
user/photos
用户/图片
user/index?content=photos
这可能是一种方法:
'<controller:user>/(<content:photos>|pics|pictures)' => array('<controller>/index', 'defaultParams'=>array('content'=>'photos')),
'/(| pics | pictures)=>数组('/index',defaultParams'=>数组('content'=>'photos')),
当您收到不同的请求并且需要将其映射到相同的GET
param时,接受的答案也有效
例如,我想要所有这些请求:
user/pics
user/photos
用户/图片
user/index?content=photos
这可能是一种方法:
'<controller:user>/(<content:photos>|pics|pictures)' => array('<controller>/index', 'defaultParams'=>array('content'=>'photos')),
'/(| pics | pictures)=>数组('/index',defaultParams'=>数组('content'=>'photos')),
您的意思是,您需要一条规则,其中参数将通过标准get
语法传递?@PeterM是的,一个页面只有一条静态规则您的意思是,您需要一条规则,其中参数将通过标准get
语法传递?@PeterM是的,一个页面只需一个静态规则+1这在更多情况下可用,官方文档不会以任何方式介绍它。谢谢:)+1这在更多的情况下是可用的,官方文档没有以任何方式介绍它。谢谢:)