Макет рендеринга на производственном сервере

Мой производственный сервер не может обработать мой логин. На моей системе разработки все работает отлично.

Здесь появляется ошибка на сайте производства:

Неустранимая ошибка: Uncaught Zend\View\Exception\RuntimeException: Zend\View\Renderer\PhpRenderer::render: Невозможно отобразить шаблон "layout/layoutlogin"

Как я это сделал:

мой Application/config/module.config.php дает шаблоны следующим образом:

'view_manager' => [
        'display_not_found_reason' => true,
        'display_exceptions'       => true,
        'doctype'                  => 'HTML5',
        'not_found_template'       => 'error/404',
        'exception_template'       => 'error/index',
        'template_map' => [
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
            'layout/layoutlogin'      => __DIR__ . '/../view/layout/layoutlogin.phtml',
            'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',
        ],
        'template_path_stack' => [
            __DIR__ . '/../view',
        ],
    ],

В моем Indexcontroller я установил макет:

$this->layout()->setTemplate('layout/layoutlogin');

Это может сделать то, что я хочу!? Я не получаю ни ошибки, ни предупреждения в режиме разработки в среде разработки. Любые идеи приветствуются!

2 ответа

Ошибка не устранена. На самом деле это была проблема конфигурации сервера. В этом случае у Apache не было достаточно прав для папки.

данные / кэш

Вы можете попробовать этот способ

public function loginAction()
{
    // Provide the layout here
    $this->layout('layout/layoutlogin');

    $view = new ViewModel();

    // Here you may set the template
    $view->setTemplate("/module/controller/template");

    return $view;
} 

На самом деле это означает, что вы используете макет, отличный от стандартного, и тогда внутри этого макета вы можете использовать шаблон, который вы хотите для этого.

Другие вопросы по тегам