Визуализация частичного представления с макетом в Zend Framework 1.12

Подобные вопросы задавались ранее, но, к сожалению, я до сих пор не могу найти решение своей проблемы.

Я хочу визуализировать представление с его макетом и сохранить его ответ в переменной.

У меня есть действие, которое называется 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);
}

Это PDF-представление для вышеуказанного действия.

<?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>

До сих пор я пытался использовать render() а также partial() методы, но ни один из них не работал.

Есть ли способ, с помощью которого я могу получить выход из представления PDF вместе с его макетом внутри pdfAction() метод?

2

Решение

Вам необходимо использовать:

$this->_helper->layout->setLayout('/path/to/your/pdf_layout_script');

в вашем pdfAction() и после этого вы можете использовать render() или же partial() методы, корректирующий макет должен быть выставлен

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]