2016-11-03 2 views
0

Ich habe eine Phalcon App, die mehrere Submodule implementiert hat. Die Ordnerstruktur sieht folgendermaßen aus:Rendern einer Ansicht mit mehreren Ansichtsverzeichnissen

root 
    app 
     controllers 
     models 
     views 
    modules 
     restaurants 
      controllers 
      models 
      views 
     tables 
      controllers 
      models 
      views 
     chairs 
      controllers 
      models 
      views 
    public 

Das Views-Verzeichnis verweist auf den Modulordner. Auf diese Weise, wenn ich eine Ansicht auswählen muss, kann ich einfach tun: $this->view->pick('tables/views/index').

Nun, mein Problem ist, dass, wenn ich eine Ansicht rendern möchte (dh. Holen Sie sich die reine HTML als Zeichenfolge), kann ich nicht in der Lage sein, das zu tun.

$this->view->disable(); 

$this->view->pick('restaurants/views/pdf'); 

$html = $this->view->getContent(); 
$html = utf8_encode($html); 

$pdf = new mPDF(); 
$pdf->WriteHTML($html); 
$pdf->SetTitle('This is a test'); 
$pdf->Output('test.pdf', "I"); 

Irgendwie kann ich das tun/lösen?

+0

Werfen Sie einen Blick auf https://docs.phalconphp.com/en/latest/reference/views.html#stand-alone-component – Timothy

Antwort

0

Sie können Ihren Modulnamen verwenden, um das richtige Views-Verzeichnis direkt in Ihren View-Service zu setzen. Auf diese Weise müssen Sie die Pick-Funktion nicht verwenden, da phalcon sie automatisch mit Ihren Controllern verbindet.

 $module_name = $di->get('router')->getModuleName(); 

     $viewsDir = __DIR__."/modules/".$module_name."/views/"; 

     $view = new View(); 

     $view->setViewsDir($viewsDir); 
Verwandte Themen