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

Mik*_*e A 3 template-engine zend-view mezzio

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

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

edi*_*igu 5

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

例如:

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);
   }
}
Run Code Online (Sandbox Code Playgroud)

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

参见#314#317