2013-03-11 3 views
2

Я только что установил bjyoungblood/bjy-authorize и задаюсь вопросом, как я могу определить Zend Framework 2, где лежит мой шаблон error/403.Как настроить шаблон 403 в bjyauthorize

Я не настроить начальную установку 'template' => 'error/403',

Файл 403.phtml находится в каталоге поставщика, но я получаю следующее сообщение об ошибке:

Предупреждение: включают (C: \ MyProject \ config \ autoload /../ view/error/403.phtml) [function.include]: не удалось открыть поток: нет такого файла или каталога в C: \ myproject \ vendor \ zendframework \ zendframework \ library \ Zend \ View \ Renderer \ PhpRenderer.php в строке 507

Что не так с моей конфигурацией?

+0

Я не уверен, что ваш план, AFAIK, вы не можете использовать композитор для bjyauthorize, а также, вы должны поместить его в каталоге модулей и просто добавить его в вашем список глобальных конфигурационных модулей. Я думаю, что php-рендеринг недоступен внутри каталога поставщика в вашем случае, поэтому вам нужно сделать работу, чтобы достичь этого. –

+0

Также Вот пример приложения, в котором есть все необходимые модули, которые хорошо настроены. https://github.com/patrioticcow/Zend-Project его действительно хорошо начать –

ответ

3

По соображениям соприкосновения (главным образом, избегая статических вызовов), BjyAuthorize uses the template map, чтобы определить, какой файл использовать при запросе error/403. Это опция настроек view_manager, как описано в разделе Zend\View documentation.

Чтобы установить свой собственный, вы можете просто определить что-то вроде следующего в вашем 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', 
), 
+0

И снова глупый! Я упустил из виду, что путь к моему шаблону был определен в модуле module.bjyauthorize.global.php.Я изменил путь в view_manager, и все работает так, как ожидалось. – Ron

2

Вы можете вручную установить:

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

в модуле/Application/Config/module.config.php и закомментируйте эту строку в module.bjyauthorize.global.php. Я предполагаю, что вы работаете со скелетом.

@ aravind.udayashankara, BjyAuthorize работает с композитором, а скелет уже настроен на загрузку модулей в вендоре, поэтому нет необходимости переместить его в каталог модулей.

Однако, похоже, что phpender не может получить доступ к каталогу просмотра в поставщике. Это может быть способ «error/403» =>DIR. '/../view/error/403.phtml "фактически отображается/интерпретируется во время выполнения.

Смежные вопросы