Я использую библиотеку kartik-mpdf для генерации pdf моих сеточных представлений, я хочу передать $ dataProvider и $ searchModel из index.php в представление, которое будет отображаться как pdf-документ (pdf.php),Поэтому, когда я выполняю поиск по индексу и нажимаю кнопку «Generar pdf», он вызывает действие GenerarPdf для AlumnoController и загружает те же $ searchModel и $ dataProvider действия индекса в pdf.php gridview и генерирует файл pdf.
Вот кодAlumnoController.php - actionGenerarPdf
public function actionGenerarPdf($searchModel, $dataProvider)
{
Yii::$app->response->format = \yii\web\Response::FORMAT_RAW;
$formatter = \Yii::$app->formatter;
$pdf = new Pdf([
'mode' => Pdf::MODE_CORE, // leaner size using standard fonts
'destination' => Pdf::DEST_BROWSER,
//Se renderiza la vista "pdf" (que abrirá la nueva ventana)
'content' => $this->renderPartial('pdf', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider
]),
'options' => [
// any mpdf options you wish to set
],
'methods' => [
'SetTitle' => 'SIE: Sistema de Informacion Estudiantil',
'SetSubject' => 'Generating PDF files via yii2-mpdf extension has never been easy',
'SetHeader' => ['SIE: Sistema de Información Estudiantil||Generado el: ' . $formatter->asDate(date("r"))],
'SetFooter' => ['|Página {PAGENO}|'],
'SetAuthor' => 'SIE: Sistema de información Estudiantil',
'SetCreator' => 'Juan Carlos Reyes Suazo',
// 'SetKeywords' => 'Sie, Yii2, Export, PDF, MPDF, Output, yii2-mpdf',
]
]);
return $pdf->render();
}
index.php
<p>
<?php
if (User::isSuperAdmin(Yii::$app->user->identity->id)){
echo Html::a('Crear Alumno', ['create'], ['class' => 'btn btn-success']);
echo Html::a('Ver PDF', [
'/alumno/generar-pdf',
'searchModel' => $searchModel,
'dataProvider' => $dataProvider
],
[
'class' => 'btn btn-success',
'target'=>'_blank',
'data-toggle'=>'tooltip',
// 'title'=>'Will open the generated PDF file in a new window'
]);
}
?>
</p>
pdf.php
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
//'id',
['attribute' => 'nombre',
'format' => 'raw',
'value'=>function ($data) {
return Html::a($data['nombre'],['alumno/view', 'id' => $data['id']]);
},
],
//'rut',
['attribute' => 'curso_id',
'format' => 'raw',
'value'=>function ($data) {
return Html::a($data['curso_id'],['curso/view', 'id' => $data['curso_id']]);
},
],
//'fecha_nacimiento',
//'fono',
//'direccion',
//'email:email',
//'apoderado',
['attribute' => 'apoderado',
'format' => 'raw',
'value'=>function ($data) {
if ($data->apoderado_id != null)
return Html::a($data->apoderado->nombre, ['apoderado/view', 'id' => $data['apoderado_id']]);
else
return null;
},
],
//'apoderado_suplente',
//'fono_apoderado',
//'fono_apoderado_sup',
//'antecedentes_medicos',
//'grupo_sanguineo',
//'programa_integracion',
//'taller_artistico',
//'anotaciones',
['class' => ActionColumn::className(), 'template' => '{update} {delete}'],
],
]); ?>
Я получаю неверный запрос (# 400)
*1013.