微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-Yii app()-> createUrl用于查看操作

我在新闻模块中使用Gii生成的动作.我有使用id参数(例如example.com/news/view/id/1)的普通视图操作.
当我使用以下代码行时:

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

生成example.com/news/1(如果$data-> primaryKey为1).这是不正确的.
当我使用以下代码行时:

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

生成example.com/news/id/id/1(如果$data-> primaryKey为1).

我感到很困惑!在第一种情况下,此函数不会生成id作为参数名称,在第二种情况下,它将生成ID!但在手动添加ID之后.
我应该怎么做才能使用此功能制作正确的网址格式?

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

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>',
            ),
        ),

这将创建如何查找URL.

创建URL时不需要写id参数,因为它是认值.查看urlmangaer规则:

Yii::app()->createUrl("news/view/",array("id"=>$data->primaryKey)) => example.com/news/id/1

认情况下:

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

您需要创建urlmanager规则…您要如何查找URL.更多详情here.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐