使用Slim Framework 2,您可以使用以下代码设置模板目录:
// Views
$view = $app->view();
$view->setTemplateDirectory('../app/views');
如何使用Slim Framework 3执行此操作?
目前我收到此错误:
Fatal error: Call to a member function setTemplateDirectory() on null
有人知道如何在Slim Framework 3中做到这一点吗?
答案 0 :(得分:3)
您可以使用\Slim\Container
实例执行此操作:
// Create container
$container = new \Slim\Container;
// Register component on container
$container['view'] = function ($c) {
$view = new \Slim\Views\Twig('your/path/to/templates');
$view->addExtension(new \Slim\Views\TwigExtension(
$c['router'],
$c['request']->getUri()
));
return $view;
};
然后你可以使用它:
$app = new \Slim\App($container);
// The route
$app->get('/foo', function (ServerRequestInterface $request, ResponseInterface $response) {
return $this->view->render($response, 'index.html', [
'name' => 'name'
]);
});
$app->run();