Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Frameworks Yii框架:创建URL时出错_Frameworks_Yii - Fatal编程技术网

Frameworks Yii框架:创建URL时出错

Frameworks Yii框架:创建URL时出错,frameworks,yii,Frameworks,Yii,我正在学习Yii,遇到了创建url的问题。我有一个组件urlManager,如下所示: 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller

我正在学习Yii,遇到了创建url的问题。我有一个组件urlManager,如下所示:

'urlManager'=>array(
                        'urlFormat'=>'path',
                        'rules'=>array(
                                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
                                'admin/useredit/<id:\d+>'=>'admin/useredit',
                        ),
                        'showScriptName'=>false,
                        'urlSuffix'=>'.html',
                ),
它正在创建'xxx.com/admin/useredit/.html2',但我希望是'xxx.com/admin/useredit/2.html'

可能出了什么问题

编辑: 问题只存在于CGridView中:

...
'value' => 'CHtml::link("$data->username","'.$this->createUrl('admin/useredit',array('id'=>$data->id)).'".CHtml::encode($data->id))',
...

你需要重新安排你的规则。将使用与路线匹配的第一条规则。因此,在您的例子中,这是
/
。您应该将
admin/useredit
规则移到顶部

如果要在
CGridView
列中创建URL,则需要在表达式周围添加
。您也不需要调用
createUrl()
,因为
CHtml::link
将接受带有参数的路由

'value'=>'CHtml::link($data->username,array("admin/useredit","id"=>$data->id))'
'value'=>'CHtml::link($data->username,array("admin/useredit","id"=>$data->id))'