2

をセットアップしたばかりで、Zend Framework 2 にテンプレートのbjyoungblood/bjy-authorize場所をどのように伝えることができるのだろうかと考えています。error/403

初期設定をしていない'template' => 'error/403',

ファイルは403.phtmlvendor ディレクトリにありますが、次のエラー メッセージが表示されます。

警告: include(C:\myproject\config\autoload/../view/error/403.phtml) [function.include]: ストリームを開くことができませんでした: C:\myproject\vendor\zendframework\ にそのようなファイルまたはディレクトリはありませんzendframework\library\Zend\View\Renderer\PhpRenderer.php 行 507

構成の何が問題になっていますか?

4

2 に答える 2

4

パフォーマンス上の理由から (主に stat 呼び出しを回避するため)、BjyAuthorize はテンプレート マップerror/403を使用して、ビューが要求されたときに使用するファイルを定義します。ドキュメントview_managerで説明されているように、これは設定のオプションです。Zend\View

独自に設定するには、次のように定義するだけですconfig/autoload/your-settings.local.php

'view_manager' => array(
    'template_map' => array(
        'error/403' => '/absolute/path/to/your/error/403.phtml',
    ),
),

または、モジュール構成で:

'view_manager' => array(
    'template_map' => array(
        'error/403' => __DIR__ . '/view/error/403.phtml',
    ),
),

構成には常に絶対パスを指定することをお勧めします。そのため、ファイルC:\myproject\config\autoload/../view/error/403.phtmlが正しいパスであることを確認してください。

必要に応じて、403 エラーに別のビューを使用することもできます。これは、次のように変更することで実現できます$config['bjyauthorize']['template']

'bjyauthorize' => array(
    'template' => 'my-module/unauthorized-template',
),
于 2013-03-12T09:13:47.713 に答える
2

以下を手動で設定できます。

'error/403' => __DIR__ . '/../view/error/403.phtml',

module/Application/config/module.config.php で、module.bjyauthorize.global.php のこの行をコメントアウトします。スケルトンで作業していると思います。

@aravind.udaayashankara、BjyAuthorizeはcomposerで動作し、スケルトンはすでにベンダーにもモジュールをロードするように構成されているため、モジュールディレクトリに移動する必要はありません.

ただし、phprender はベンダーのビュー ディレクトリにアクセスできないようです。"error/403' => DIR . '/../view/error/403.phtml" が実行時に実際にマップ/解釈される方法かもしれません。

于 2013-03-12T08:31:08.177 に答える