2016-11-03 8 views
0

複数のサブモジュールが実装されているphalconアプリケーションがあります。フォルダ構造は次のようになります。複数のビューディレクトリを持つビューをレンダリングする

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

viewsディレクトリはmodulesフォルダを指しています。このように、私はビューを選択する必要があるとき私はちょうど行うことができます:$this->view->pick('tables/views/index')

私の問題は、ビューをレンダリング(つまり、純粋なhtmlを文字列として取得)したいとき、私はそれを行うことができないようです。

$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"); 

どのようにして解決できますか?これを解決しますか?

+0

https://docs.phalconphp.com/en/latest/reference/views.html#stand-alone-component – Timothy

答えて

0

モジュール名を使用して、適切なビューディレクトリをビューサービスに直接設定することができます。そうすれば、phalconは自動的にそれらをあなたのコントローラに関連付けるので、pick関数を使う必要はありません。

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

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

     $view = new View(); 

     $view->setViewsDir($viewsDir); 
関連する問題