我在一个叫做News的模块中使用了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之后。
我应该怎么做才能使正确的网址格式与此功能?
**编辑:**news是一个模块,我把这行代码修改为:
Yii::app()->createUrl("news/default/view/id/",array("id"=>$data->primaryKey))
它生成的example.com/news/default/view/id/1
是正确的,但我不想要那个默认值!
3条答案
按热度按时间sc4hvdpw1#
在配置文件中,您可以看到如下内容:
这将创建URL的外观。
创建URL时不需要写入
id
参数,因为是默认的。请查看urlmanager规则:模块默认值:
你需要创建一个url管理器规则...你想要如何查看你的网址。更多详情here。
ddhy6vgd2#
用途
如果你有一个模块名为
news
。您可以尝试用正则表达式替换
news
,但如果正则表达式太宽,您将面临URL被多个正则表达式匹配问题。请在rules数组键中使用<module:news|accounting|people>
,在rules数组值中使用<module>
。如果您需要更复杂的url管理,或者如果您不能用正则表达式解决您的任务,您可以随时扩展CUrlManager。
2eafrhcq3#
尝试在此目录中检查它:保护/配置/main.php sir.
请注意,这是路由好吗?:)