Rozbehanie Joseki/PdfResponse chyba pri použítí
- KristianSubweb
- Člen | 146
Ahojte nevedeli by ste podariť čo stýmto ?
Malo by to byť verziov php mometálne mám 7.1.12
public function actionPdf()
{
$this->setNeededPrivilage("view");
$template = $this->createTemplate();
$template->setFile(__DIR__ . "/Pdf/template.latte");
$pdf = new \Joseki\Application\Responses\PdfResponse($template);
$pdf->setSaveMode(\Joseki\Application\Responses\PdfResponse::INLINE);
$this->sendResponse($pdf);
}
Chyba:
Switch statements may only contain one default clause search►
Source file
File: .../www/Billbardovo/vendor/mpdf/mpdf/mpdf.php:1424
1414: case 'LETTER': {$format = array(612.00,792.00); break;}
1415: case 'LEGAL': {$format = array(612.00,1008.00); break;}
1416: case 'LEDGER': {$format = array(279.00,432.00); break;}
1417: case 'TABLOID': {$format = array(279.00,432.00); break;}
1418: case 'EXECUTIVE': {$format = array(521.86,756.00); break;}
1419: case 'FOLIO': {$format = array(612.00,936.00); break;}
1420: case 'B': {$format=array(362.83,561.26 ); break;} // 'B' format paperback size 128x198mm
1421: case 'A': {$format=array(314.65,504.57 ); break;} // 'A' format paperback size 111x178mm
1422: case 'DEMY': {$format=array(382.68,612.28 ); break;} // 'Demy' format paperback size 135x216mm
1423: case 'ROYAL': {$format=array(433.70,663.30 ); break;} // 'Royal' format paperback size 153x234mm
1424: default: $format = false;
1425: }
1426: return $format;
1427: }
je na riadku 1424. :( niekto nejaké riešenie alebo odporučenie niečoho čo spolahlivo beží ? ďakujem
- KristianSubweb
- Člen | 146
nightfish napsal(a):
Řešením je upgradovat mPDF na verzi, která má tuto chybu opravenou.
Když si vyroluješ v kódu mpdf.php ještě o pár řádků výš, najdeš tam řádek, kde je
default
použito poprvé:case 'A4': default: {$format = array(595.28,841.89); break;}
Ďakujem :) je to oka :))
- KristianSubweb
- Člen | 146
Ašte by ma zaujímalo ako dokážem poslať do toho templatu nejakú
premennu kde mám uložené data.
Cez this->template to asi nejde či ?
public function actionPdf($id)
{
$dataBillboard = $this->billboardService->getById($id);
$this->template->data = $dataBillboard;
$this->setNeededPrivilage("view");
$template = $this->createTemplate();
$template->setFile(__DIR__ . "/Pdf/template.latte");
$pdf = new \Joseki\Application\Responses\PdfResponse($template);
$pdf->setSaveMode(\Joseki\Application\Responses\PdfResponse::INLINE);
$this->sendResponse($pdf);
}
- GEpic
- Člen | 566
KristianSubweb napsal(a):
Ašte by ma zaujímalo ako dokážem poslať do toho templatu nejakú premennu kde mám uložené data.
Cez this->template to asi nejde či ?
A proč myslíš že tam máš tenhle kus kódu? :)
$template = $this->createTemplate();
$template->setFile(__DIR__ . "/Pdf/template.latte");
$this
je v tvém případě presenter, takže přes
$this->template
nastavuješ proměnné do šablony presenteru,
ale ty odesíláš uživateli PdfResponse
, které do konstruktoru
předáváš tebou vytvořenou šablonu v proměnné $template
,
takže šablona presenteru se k uživateli nikdy nedostane.
Takže si předej data do šablony PDFka takto:
$template->data = "nejaka data";
Editoval GEpic (11. 5. 2018 12:06)
- KristianSubweb
- Člen | 146
GEpic napsal(a):
KristianSubweb napsal(a):
Ašte by ma zaujímalo ako dokážem poslať do toho templatu nejakú premennu kde mám uložené data.
Cez this->template to asi nejde či ?A proč myslíš že tam máš tenhle kus kódu? :)
$template = $this->createTemplate(); $template->setFile(__DIR__ . "/Pdf/template.latte");
$this
je v tvém případě presenter, takže přes$this->template
nastavuješ proměnné do šablony presenteru, ale ty odesíláš uživateliPdfResponse
, které do konstruktoru předáváš tebou vytvořenou šablonu v proměnné$template
, takže šablona presenteru se k uživateli nikdy nedostane.Takže si předej data do šablony PDFka takto:
$template->data = "nejaka data";
Ďakujem :)