在Zend Expressive中,布局是“默认”到“模板”文件夹中。
我想将“ admin”文件夹添加到“ templates”文件夹中,如下所示:
我已经尝试过Zend Expressive的教程来添加新的布局,但对我来说却没有成功...
class AdminPageHandler implements RequestHandlerInterface
{
private $template;
public function __construct(TemplateRendererInterface $template)
{
$this->template = $template;
}
public function handle(ServerRequestInterface $request) : ResponseInterface
{
$data = [
'admin' => 'layout::admin',
// or 'layout::admin',
// or 'layout::alternative',
];
$content = $this->template->render('pages::admin-page', $data);
return new HtmlResponse($content);
}
}
如何为管理仪表板添加新的布局?
我想为我的管理仪表板添加新的布局,因为HTML脚本与家庭应用程序不同。
答案 0 :(得分:0)
可以在ConfigProvider class => __invoke方法中的“模板” =>“路径”下或getTemplates()方法中找到模板路径。在那里,您应该添加一个新路径:
/**
* Returns the templates configuration
*/
public function getTemplates(): array
{
return [
'paths' => [
'app' => [__DIR__ . '/../templates/app'],
'error' => [__DIR__ . '/../templates/error'],
'layout' => [__DIR__ . '/../templates/layout'],
'admin' => [__DIR__ . '/../templates/admin'],
],
];
}
然后您的处理程序应如下所示
public function handle(ServerRequestInterface $request) : ResponseInterface
{
$data = [
'admin' => 'layout::admin',
// or 'layout::admin',
// or 'layout::alternative',
];
$content = $this->template->render('admin::app/admin-page', $data);
return new HtmlResponse($content);
}