Generuję losowo dane, następnie przekazuje je do widoku gdzie są wyświetlane.
Jak mało jest danych przekazuję je za pomocą formularza do akcji w której generowany jest pdf.
Wygląda to tak:
<?php
$form = ActiveForm::begin([
'id' => 'form',
'options' => ['class' => 'form-horizontal text-center'],
'method' => 'post',
'action' => ['/form/pdf'],
]);?>
<?php foreach($wynk as $a => $<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='B)' />{ ?>
<input type="hidden" name="<?= $a ?>" value="<?= $b ?>">
<?php }?>
<div class="form-group text-center">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('PDF', ['class' => 'btn btn-success']) ?>
</div>
</div>
<?php ActiveForm::end(); ?>
Akcja tworząca pdf:
public function actionPDF()
{
$request = Yii::$app->request;
$wynik = $request->post();
$mpdf = new mPDF;
$mpdf->WriteHTML($this->renderPartial('pdf_', ['wynik'=>$wynik]));
$mpdf->Output('pdf.pdf', 'D');
exit;
}
Działa to dla małej ilości danych. Problem jest gdy danych jest wiele i są tablice w tablicy.
Co chcę uzyskać?
Chodzi mi jak kod tworzący pdf zawrzeć razem w jednej akcji tak, aby z wygenerowanych danych wyświetlić widok, ale został również utworzony pdf i przekazany do widoku do pobrania po naciśnięciu przycisku, albo jakoś inaczej. Nie wiem jak to rozwiązać.
Do pdf’ów używam mpdf.
Nie wiem czy przedstawiłem to zrozumiale, jak nie to proszę dopytywać.
Najlepiej to było by mi tak jak robię to do tej pory czyli przycisk, tylko nie jestem wstanie przekazać tak dużej ilości informacji.
Przenieść tworzenie pdf do widoku i na podstawie zmiennych z widoku generować pdf’a?
Generalnie myślę w jaki sposób w będąc już w widoku wywołać funkcję renderującą kolejny widok np. po naciśnięciu przycisku?