Zend Expressive:如何使用 Zend View 更改布局

Zend Expressive: how to change layout using Zend View

Zend Expressive 在使用 Zend View 时默认为 layout 模板。我注意到 PhpRenderer class 中的 addTemplate($template) 函数,但是在哪里以及如何将替代模板添加到 layout?

在动作的中间件工厂中,在动作本身中,还是在其他地方?

layout 键传递给 data 数组中渲染器的 render() 方法似乎足以在返回响应之前切换布局。

例如:

class HomeAction
{
   public function __invoke($request, $response, $next)
   {
     $data = [
        'layout' => 'layout::default',
        // or 'layout::admin',
        // or 'layout::alternative',
     ];

     $body = $this->template->render('app::home', $data);

     return new HtmlResponse($body);
   }
}

我强烈建议观看存储库及其在 github 上的问题更新。

#314 and #317