Yii 1.1 CLinkPager 生成不完整的url

Posted

技术标签:

【中文标题】Yii 1.1 CLinkPager 生成不完整的url【英文标题】:Yii 1.1 CLinkPager generated uncomplete url 【发布时间】:2014-12-15 09:41:12 【问题描述】:

我是 Yii 1.1 的新手。我在使用 CLinkPager 生成 url 时遇到问题。 正确的 url 是 http://example.com/read/group/car?page=2 [baseurl/controller/action/id?page_number] 但 yii 1.1 CLinkPager 生成了错误的 url (http://example.com/read/group?page=2) 并错过了 */car。

我的 config/main.php 是这样的

... 
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/*<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
...

如何配置 yii 以获得正确的 url? 提前致谢。

【问题讨论】:

所以car 是id?这不起作用,因为您的规则说,id 是一个数字 【参考方案1】:

您的规则有问题,请将其替换为:

'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\w+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

您尝试使用&lt;id:\d+&gt;,但\d 代表数字。所以你需要用\w(单词字符)替换它

【讨论】:

小心,因为\w 只匹配单词字符。在这种情况下,car 将匹配您的规则,但 old-car - 不匹配。您可以使用[^\/]+ 代替\w+

以上是关于Yii 1.1 CLinkPager 生成不完整的url的主要内容,如果未能解决你的问题,请参考以下文章

yii2 RUL的生成

yii2 pdf生成不起作用

yii2 HTML组手

Gii 模型生成器错误 - 表不存在 - Yii 框架和 SQL Server 2000

如何使用 phpunit 模拟 Yii@1.1 的 CActiveRecord(避免空属性)?

YII上传图片完整代码