Yii检索renderPartial文件并将其存储在变量中
我在protected/views/directory\u controller\u name下有一个php文件,格式如下Yii检索renderPartial文件并将其存储在变量中,yii,Yii,我在protected/views/directory\u controller\u name下有一个php文件,格式如下 <p> <?php echo $model->title;?> </p> ... 但是要知道,我需要发送一封具有相同模板/布局的电子邮件,以便将文件的渲染存储在一个变量中,如 $msgHTML=$this->renderInternal('u items',数组('model'=>$model)) 如何从文件中获取渲染视图并将其存
<p>
<?php echo $model->title;?>
</p>
...
但是要知道,我需要发送一封具有相同模板/布局的电子邮件,以便将文件的渲染存储在一个变量中,如
$msgHTML=$this->renderInternal('u items',数组('model'=>$model))
如何从文件中获取渲染视图并将其存储在变量中?
可能吗
我不想使用:
$msgHTML = '<p>'.$model->title.'</p>'
...
$msgHTML=''.$model->title.'
...
因为文件很长,我不想重复代码
$msgHTML = $this->renderInternal('_items', array('model'=>$model), true);
我可能遗漏了一些内容,但您不能将return参数设置为true并使用regular render()吗?然后,您可以只使用视图“名称”,而不知道路径。(除非可靠的堆栈跟踪记录器被破坏,否则renderFile和renderInternal将使用相同的完全限定路径参数。至少我可以看到renderPartial()将我的视图文件的完整路径传递给renderFile。)不要使用renderInternal方法,而是使用。Render internal是低级方法,不应在此类上下文中使用。要捕获输出,只需将$return参数设置为true:
<?php $output = $this->renderPartial('_subView', $dataArray, true); ?>
您可以通过以下方法完成此操作 1) 如果您想获得页眉和页脚(即完整布局)的输出,请执行此操作
//add true in the last parameter if you want a return of the output
$htmloutput=$this->render('_pdfoutput',array('data'=>'nothing'),true);
2) 同样,如果您不想获取布局文件,只需以相同的方式使用renderpartial
$htmloutput=$this->renderpartial('_pdfoutput',array('data'=>'nothing'),true);
您将在变量中获得文件的html。在任何地方使用这个最后我使用这个:$msgHTML=$this->renderFile('protected/views/modelname/_items.php',array('model'=>$model),TRUE);是的,你是对的,renderInternal需要完整的路径/文件名,包括扩展名-我只添加了第三个参数来解决主要问题,tx以进行澄清。
//add true in the last parameter if you want a return of the output
$htmloutput=$this->render('_pdfoutput',array('data'=>'nothing'),true);
$htmloutput=$this->renderpartial('_pdfoutput',array('data'=>'nothing'),true);