Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/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
Php Yii应用程序()->;创建视图操作的URL_Php_Url_Yii - Fatal编程技术网

Php Yii应用程序()->;创建视图操作的URL

Php Yii应用程序()->;创建视图操作的URL,php,url,yii,Php,Url,Yii,我在一个模块中使用Gii生成的动作。我有一个与id参数一起工作的正常视图操作(例如example.com/news/view/id/1)。 当我使用这行代码时: Yii::app()->createUrl("news/view",array("id"=>$data->primaryKey)) Yii::app()->createUrl("news/view/id/",array("id"=>$data->primaryKey)) 它生成example.co

我在一个模块中使用Gii生成的动作。我有一个与id参数一起工作的正常视图操作(例如
example.com/news/view/id/1
)。
当我使用这行代码时:

Yii::app()->createUrl("news/view",array("id"=>$data->primaryKey))
Yii::app()->createUrl("news/view/id/",array("id"=>$data->primaryKey))
它生成
example.com/news/1
(如果
$data->primaryKey
为1)。这是不正确的。
当我使用这行代码时:

Yii::app()->createUrl("news/view",array("id"=>$data->primaryKey))
Yii::app()->createUrl("news/view/id/",array("id"=>$data->primaryKey))
它生成
example.com/news/id/id/1
(如果
$data->primaryKey
为1)

我真糊涂!在第一种情况下,此函数不生成id作为参数名,而在第二种情况下,它生成id!但在手动添加id之后。
我该怎么做才能用这个函数生成正确的url格式

编辑:新闻是一个模块。我将代码行更改为:

Yii::app()->createUrl("news/default/view/id/",array("id"=>$data->primaryKey))

它生成的
example.com/news/default/view/id/1
是正确的,但我不想要那个默认值

在配置文件中有如下内容:

'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>',
            ),
        ),
在模块defaut上:

Yii::app()->createUrl('/news/default/view', array('id' => $data->primaryKey))
您需要创建urlmanager规则。。。您希望如何查看您的URL。更多详细信息。

使用

'rules'=>array(
    'news/<controller:\w+>/<id:\d+>'=>'news/<controller>/view',
    'news/<controller:\w+>/<action:\w+>/<id:\d+>'=>'news/<controller>/<action>',
    'news/<controller:\w+>/<action:\w+>'=>'news/<controller>/<action>',
 ),
“规则”=>数组(
'news//'=>'news//view',
“新闻//”=>“新闻/”,
“新闻/”=>“新闻/”,
),
如果您有模块名称
新闻

您可以尝试用正则表达式替换
新闻
,但是如果您的正则表达式太宽,那么您将面临由多个正则表达式匹配的URL问题。在规则数组键和规则数组值中使用类似于
的内容


如果您需要更复杂的url管理,或者如果您无法使用正则表达式解决您的任务,您可以随时扩展CUrlManager。

尝试在以下目录中检查它:protected/config/main.php sir。


urlManager'=>数组(
“urlFormat'=>“路径”,
'规则'=>数组(
“/”=>“/视图”,
'//'=>'/',
'/'=>'/',
),
),
请注意,这条线路走得好吗?:)

在yii2中使用: