【问题标题】:Yii render view in another viewYii 在另一个视图中渲染视图
【发布时间】:2013-02-05 11:23:45
【问题描述】:

我的应用程序中有一个渲染视图,当我导出为 PDF 时,我想使用之前渲染的数据。现在我用另一种方式来做,我再次加载所有的东西来导出。我该怎么做?

我用过这段代码但没有成功:

array('label'=>'Export pdf', 'url'=>array($this->renderPartial(
      'ViewPDF2', array('sessao' => $GLOBALS['session'],'name_project'=>$model->name_project,'id_project'=>$model->i‌d_project,'dataStart'=>$model->data_start,'dataEnd'=>$model->data_end))))

【问题讨论】:

  • 我有一个视图,我只想知道如何通过它渲染另一个视图。我使用了这段代码但没有成功: array('label'=>'Export pdf', 'url'=>array($this->renderPartial('ViewPDF2', array('sessao' => $ GLOBALS['session'],'name_project'=>$model->name_project,'id_project'=>$model->id_project,'dataStart'=>$model->data_start,'dataEnd'=>$model->data_end )))),
  • 在url中你必须放url。因此,您需要放入 $this->createUrl() 值,而不是 put renderPartial。
  • 会这样吗? array('label'=>'导出 pdf', 'url'=>$this->createUrl($this->renderPartial('indexpdf', array('sessao' => $GLOBALS['session'],'name_project '=>$model->name_project,'id_project'=>$model->id_project,'dataStart'=>$model->data_start,'dataEnd'=>$model->data_end)))),

标签: php pdf frameworks yii


【解决方案1】:

我不确定您是如何在视图中看到该代码的?您将该数组作为参数传递给某个函数?我们现在只能看到您正在定义一个数组。

在视图中渲染视图的一般方法是这样的(这是容器视图文件):

<?php //view code here ?>
<!-- some html in your view-->
<div id='included_view' >    
  <?php $this->renderPartial('viewName', array('argForView'=>$foo)); ?>
</div>

<!-- rest of view -->

注意这里使用$foo 意味着您之前将该变量传递给容器视图(或者您在renderPartial 之前的PHP 代码块中定义了$foo

【讨论】:

    【解决方案2】:

    在 url 参数中,您应该使用一个 URL 地址,它指的是一个动作,该动作呈现导出到 PDF 的视图。 renderPartial 方法只是以您自己的布局格式呈现视图文件。

    【讨论】:

      猜你喜欢
      • 2013-06-20
      • 2012-06-24
      • 1970-01-01
      • 2012-06-20
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多