我正在使用Yii提供的博客演示,我尝试了解如何在不重新加载页面的情况下在选择帖子下呈现评论。
演示的原则是:
发布/索引行动
- 渲染index.php,它通过ClistView调用_view.php。
(因此它给出了帖子列表,并为每个帖子提供了相关评论的链接。)
该链接包含以下代码
<?php echo CHtml::link("Comments ({$data->commentCount})",$data->url); ?>
(提供链接 - &gt;
localhost/blog/index.php/post/2/postTitle
2 = post_id
我想用
替换它<?php echo CHtml::ajaxButton ("Comments ({$data->commentCount})",
CController::createUrl($data->url)
);
但它产生以下链接
localhost/blog/index.php/blog/index.php/post/2/postTitle?_=1395482622334
我得到了404错误
发布/查看操作
你能告诉我一个错误吗?
感谢您的帮助
答案 0 :(得分:0)
CController从受保护的基目录创建URL。它为此控制器中定义的指定操作创建相对URL。
createUrl函数生成类似于
localhost/blog/index.php/
但是你的$ data-&gt;网址还包含blog/index.php/
,这就是为什么你加倍的原因。你可以简单地写
CController::createUrl('controller/action',array('key'=>'value'))
请勿将blog/index.php/
放入您的$ data-&gt; Url。如果您需要,则可以将其简写为
<?php echo CHtml::ajaxButton ("Comments ({$data->commentCount})",
$data->url
);