2016-05-19 4 views
0

エラー処理全体を1つのモジュールにバンドルしたい。これまでのところ動作していますが、エラーテンプレートは依然としてデフォルトの[project root]/module/Application/view/error/index.phtmlです。私はそれを使用したいが、私の追加コードで包まれている。このためには、デフォルトの例外テンプレートを部分的に追加する必要があります。パーシャルビューヘルパーにモジュール名を渡すことはできません(これ以上)。Zend Framework 2のビューフォルダの外に別のモジュールからビューをレンダリングするには?

[project root]/module/ErrorHandling/view/exception.phtml

echo $this->partial('Application/error/index'); 

しかし、それは動作しませんでした:だから私は(hereを示唆した)、これを試してみました

のZend \ビュー\例外の\のRuntimeException:Zendの\ビュー\レンダラ\ PhpRenderer :: render: "Application/error/index"テンプレートをレンダリングできません。リゾルバはそれが唯一のビューのために働く/var/www/.../my-project/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php:494

のファイルに解決できませんでした/module/{AnotherModule}/view/{another-module}サブフォルダ。

部分的にレンダリングされた別のモジュール(ただし、/module/{AnotherModule}/view/{another-module}サブフォルダの外側)からのビューを取得するにはどうすればよいですか?

答えて

0

回避策は、例えば、ビューマネージャのテンプレート・マップに目的のビューを追加することです:

config/autoload/global.php

return [ 
    'view_manager' => [ 
     'template_map' => [ 
      'default_zf_error_view' => __DIR__ . '/../../module/Application/view/error/index.phtml' 
     ] 
    ] 
]; 

それは動作しますが、まだ知って興味深いものになるだろう、この問題を少しきれいに解決する方法。

0

あなたはモジュールのmodule.config.phpに追加するのに十分だろうglobal.php

でそれを追加する必要はありません。これらのビューは、ZF2が異なるモジュールのすべての設定ファイルをマージするため、他のモジュール内でもアクセスできます。詳しくはこちらin the documentation in the chapter Advanced Configuration Tricksmodule.config.php中のSO

$viewModel->setTemplate('default_zf_error_view'); 
:あなたが今できること、他のモジュールのコントローラで

return [ 

    //... 

    'view_manager' => [ 
     'template_map' => [ 
      'default_zf_error_view' => __DIR__ . '/../../module/Application/view/error/index.phtml' 
     ] 
    ] 

    //... 

]; 

関連する問題