我可以在每条路线中设置$ baseUrl,
<?php
$app->get('/sign-in', function ($request, $response, $args) {
$uri = $request->getUri();
$baseUrl = $uri->getBaseUrl();
$this->renderer->render($response, 'sign-in.phtml', $args);
});
但是我必须在所有视图的每个路径中设置它。
有没有办法在一个地方设置$ baseUrl并在每个路径/视图中使用它?
答案 0 :(得分:2)
注册Twig View帮助程序时,还要添加$view['baseUrl']
,以便在每个路径中使用它:
$container['view'] = function ($c) {
$view = new \Slim\Views\Twig('templates');
// Instantiate and add Slim specific extension
$basePath = rtrim(str_ireplace('index.php', '', $c['request']->getUri()->getBasePath()), '/');
$view->addExtension(new Slim\Views\TwigExtension($c['router'], $basePath));
$view['baseUrl'] = $c['request']->getUri()->getBaseUrl();
return $view;
};
在您的Twig文件中,您将使用:
{{ baseUrl }}