Php 在Zend Framework 1.12中使用布局渲染局部视图
以前也有人问过类似的问题,但不幸的是,我仍然无法找到解决问题的方法 我想渲染一个视图及其布局,并将其响应存储到一个变量中 我有一个名为pdf的操作,如下所示。Php 在Zend Framework 1.12中使用布局渲染局部视图,php,zend-framework,zend-view,zend-layout,Php,Zend Framework,Zend View,Zend Layout,以前也有人问过类似的问题,但不幸的是,我仍然无法找到解决问题的方法 我想渲染一个视图及其布局,并将其响应存储到一个变量中 我有一个名为pdf的操作,如下所示。 public function pdfAction(){ $ids = $this->getParam('id'); $entity = $this->getParam('entity'); $referer = $this->getRequest()->getSer
public function pdfAction(){
$ids = $this->getParam('id');
$entity = $this->getParam('entity');
$referer = $this->getRequest()->getServer('HTTP_REFERER');
if(empty($ids) || empty($entity)){
$this->_helper->redirector->gotoUrlAndExit($referer);
}
$grid = $this->_exportModel->getExportGrid($ids, $entity);
if(empty($grid->data[0])){
$this->_helper->messenger->error('No user was found for the given id. Please pass the correct parameters and try again.');
$this->_helper->redirector->gotoUrlAndExit($referer);
}
/* I would like to render the view here and get its response below. */
$html = '';
$pdf = new Om_PDF();
$pdf->writeHtmlToPDF($html);
}
<?php echo $this->render('templates/grid/print-grid.phtml'); ?>
这是上述操作的pdf视图。
public function pdfAction(){
$ids = $this->getParam('id');
$entity = $this->getParam('entity');
$referer = $this->getRequest()->getServer('HTTP_REFERER');
if(empty($ids) || empty($entity)){
$this->_helper->redirector->gotoUrlAndExit($referer);
}
$grid = $this->_exportModel->getExportGrid($ids, $entity);
if(empty($grid->data[0])){
$this->_helper->messenger->error('No user was found for the given id. Please pass the correct parameters and try again.');
$this->_helper->redirector->gotoUrlAndExit($referer);
}
/* I would like to render the view here and get its response below. */
$html = '';
$pdf = new Om_PDF();
$pdf->writeHtmlToPDF($html);
}
<?php echo $this->render('templates/grid/print-grid.phtml'); ?>
这是pdf布局
<?php echo $this->doctype(); ?>
<html moznomarginboxes mozdisallowselectionprint>
<link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" media="all"/>
<style type="text/css">
.container {
margin: 0 auto;
max-width: 1000px;
text-align: center;
margin-top: 30px;
}
@media print {
@page {
size: auto;
margin: 15mm 10mm 15mm 10mm;
}
body {
margin: 0px;
}
.page-break {
display: block;
page-break-before: always;
}
.print-view-table {
float: left;
width: 45% !important;
margin-right: 5%;
}
.print-view-table tr th, .print-view-table tr td {
width: 30%;
}
.print-view-table tr th {
background-color: #e0e0e0 !important;
border: 1px solid #ddd;
-webkit-print-color-adjust: exact;
}
}
</style>
<head>
<?php ?>
</head>
<body>
<div class="container">
<div class="row">
<?php echo $this->layout()->content; ?>
</div>
</div>
</body>
</html>
.集装箱{
保证金:0自动;
最大宽度:1000px;
文本对齐:居中;
边缘顶部:30px;
}
@媒体印刷品{
@页面{
尺寸:自动;
边距:15mm 10mm 15mm 10mm;
}
身体{
边际:0px;
}
.分页符{
显示:块;
前分页符:始终;
}
.打印视图表{
浮动:左;
宽度:45%!重要;
保证金权利:5%;
}
.打印视图表tr th、.打印视图表tr td{
宽度:30%;
}
.打印视图表tr th{
背景色:#E0!重要;
边框:1px实心#ddd;
-webkit打印颜色调整:精确;
}
}
到目前为止,我已经尝试过使用render()
和partial()
方法,但都不起作用
是否有一种方法可以使pdf视图及其在pdprotion()方法中的布局向外输出?您需要使用:
$this->_helper->layout->setLayout('/path/to/your/pdf_layout_script');
在pdpartion()
中,然后可以使用render()
或partial()
方法,应该输出正确的布局