Yii输出重复内容

时间:2016-08-18 14:01:38

标签: php yii render renderpartial

前端人员在谈论后端 - 请记住。

我们有一个名为Ideas的模块,它有一些时间轴,每个项目都有不同的创意条目。

初始渲染,在IdeasProjectController.php处通过actionView方法将视图渲染到屏幕,但我想重新使用此操作,以便我可以从此处请求某种分页内容改为采取行动方式。

现在的样子:

$data = array(
    'user' => $user,
    'project' => $project,
    'ideas' => $ideas,
    'myIdeas' => false,
    'offset' => isset($offset) ? $offset : 0,
    'isAjaxRequest' => $isAjaxRequest,
    'isVotingActive' => $project->isVotingActive(),
    'userHasIdeas' => count($userIdeas) > 0,
    'teamInviteParams' => $teamInviteParams,
);

// renderPartial only if an ajax request
if ($isAjaxRequest) {
    $this->renderPartial('view', $data, null, true);
} else {
    $this->render('view', $data);
}

在关联的view.php文件中,我们使用isAjaxRequest参数最终触发渲染不同的twig文件,使用类似的数据集,知道完整{{1}请求的文件包含我用于render的树枝文件。这样:

renderPartial

到目前为止一切顺利。但我需要在布局树枝文件中使用if( $isAjaxRequest ) { Yii::app()->twig->render('blocks/l-ideas/b-ideas-list/b-ideas-list.twig', array(..) } else { Yii::app()->twig->render('blocks/l-ideas/l-ideas-project/l-ideas-project.twig', array(..) ,如下所示:b-ideas-list结果完全不同,所以这就是{% use '/blocks/l-ideas/b-ideas-list/b-ideas-list.twig' %}内部的样子:

b-ideas-list.twig

这样,在AJAX请求中,我只获得最小的想法列表和{% block bIdeasList %} {% if not isAjaxRequest %} <div class="b-ideas-list__wrap b-ideas-list__wrap_no-margin"> .. lots of boilerplate .. </div> <div class="b-ideas-list b-ideas-list_covers clearfix"> <div class="b-ideas-list__wrap"> <div class="clearfix b-ideas-list__wraper-fixed-box"> <div class="b-ideas-list__left">&#160;</div> <div class="b-ideas-list__center"> {{ block('bIdeasList_') }} {{ block('bIdeasMore_') }} </div> {{ block('bIdeasListPartners_') }} </div> {{ block('bIdeasListActiveIdeas_') }} </div> </div> {% else %} {{ block('bIdeasList_') }} {{ block('bIdeasMore_') }} {% endif %} {% endblock %} 按钮,以便在下一个AJAX请求中加载更多内容。有一些偏移等

现在。如果我对结果URL进行http访问,例如More在数据库中只有7个条目,我会得到两个新的想法和完整的布局。但是通过对同一个URL的AJAX调用进行相同的访问,我得到了两个构思卡,剥离了布局,然后围绕/ideas/ideasProject/view/1?offset=5块的样板代码,好像我没有访问{只需一次通话即可{1}}为真。

如果你还在读这个。你认为你能帮忙吗?

0 个答案:

没有答案