Pdfresponse, problém při tvorbě pdf z databáze

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Koniklec
Člen | 6
+
0
-

zdravím,
chtěl bych se zeptat na radu ohledně https://componette.org/search/?…

<script>
 public function actionPdfObjednavka($cena,$co) {
      $post = $this->database->table('nakup')->get($co);
      $celkem = $cena;

  $html = "
<h2>Náhled Objednávky</h2>

<div>Číslo objednávky: {$post->cislo_nakup}</div>
<div>Vystaveno Dne: {$post->objednavka->vystaveno_dne}</div>
<div>Záruka do; {$post->zaruka_do}</div>
<div>Poznámka: {$post->objednavka->poznamka}</div>
<br>

<h3>Zákazník</h3>
<div>Název: {$post->objednavka->zakaznici->nazev}</div>
<div>ICO: {$post->objednavka->zakaznici->ICO}</div>
<div>DIC: {$post->objednavka->zakaznici->DIC}</div>
<div>Telefón: {$post->objednavka->zakaznici->telefon}</div>
<div>E-mail: {$post->objednavka->zakaznici->mail}</div>
<div>Adresa: {$post->objednavka->zakaznici->adresa}</div>
<br>


<h3>Zpracovává</h3>
<div>Jméno: {$post->objednavka->zamestnanci->jmeno}</div>
<div>Příjmení: {$post->objednavka->zamestnanci->prijmeni}</div>
<div>E-mail: {$post->objednavka->zamestnanci->mail}</div>
<div>Telefón: {$post->objednavka->zamestnanci->telefon}</div>

<div>Celková cena:{$celkem} Kč</div>
 ";
        $this->sendResponse(new PDFResponse($html));
}

</script>

toto my jede, ale když tam přidám foreach

<script>

{foreach $post->objednavka->related('objednavka_produkty') as $produkty}
<div>Název: {$produkty->produkty->nazev}</div>
<div>Cena: {$produkty->produkty->cena}</div>
<div>Množství:{$produkty->mnozstvi}</div>
{/foreach}

</script>

tak my to hází chybu že $produkty nejsou definovaný. V tom foreach se jakoby nic neudělá.
Zkoušel sem to i přes templete,

<script>
$html = $this->createTemplate()->setFile($appDir."/templates/Moje/pdfObjednavka.latte");
</script>

ale tam zas nevím jak předat databázi, přes renderpdfObjednavka se to nespustí a zase my to háže že je $post nedefinovaný.
kdyby někdo věděl bych bych rád za radu díky :)

Azathoth
Člen | 495
+
0
-

Chápu to správně, že nemáš problém s pdfResponse, ale s načítáním dat z databáze?
Jak vypadá ta proměnná $produkty? Zkus si ji dumpnout a podívat se, jakou má strukturu.

Koniklec
Člen | 6
+
0
-

Z načítáním z databáze problém není vše co tam mám napsané man hozené v templatu a v tom to v pohodě jede. Spíš de o to že, když napíšu toto

<script>

$html = "
{foreach $post->objednavka->related('objednavka_produkty') as $produkty}
<div>Název: {$produkty->produkty->nazev}</div>
<div>Cena: {$produkty->produkty->cena}</div>
<div>Množství:{$produkty->mnozstvi}</div>
{/foreach}
";

</script>

tak se jakoby neprovede ten foreach z tohoto $post->objednavka->related(‚objednavka_produkty‘) se nestanou $produkty a proto nejsou definovaný, ale nevím proc v tomto $html = „..“ ten foreach proste nejede. Ten stejný foreach mám i v templatu a tam právě funguje .

Freema
Člen | 18
+
+2
-

To je pekny fuj ten html string v php :D
Takhle to nejde? :

<?php
$template = $this->createTemplate();
$template->setFile($appDir."/templates/Moje/pdfObjednavka.latte");
$template->post = $post = $this->database->table('nakup')->get($co);

$pdf = new PDFResponse($template);
?>
Koniklec
Člen | 6
+
0
-

super, takhle je to mnohem lepší nevědel jsem práve jak do toho tampletu dostat ten post :) diky