Yii中的Ajaxbutton取代了普通的链接

时间:2014-03-22 10:07:31

标签: ajax yii

我正在使用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错误

发布/查看操作

  • 特定帖子的renderPartial post / _view
  • renderPartial post / _comments,其中列出了与for循环相关的注释。
  • renderPartial comment / _form

你能告诉我一个错误吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

CController从受保护的基目录创建URL。它为此控制器中定义的指定操作创建相对URL。
createUrl函数生成类似于

的URL
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
                              );