Slim Framework 3.如何为所有视图设置$ baseURL?

时间:2016-08-28 08:36:36

标签: php slim

我可以在每条路线中设置$ 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并在每个路径/视图中使用它?

1 个答案:

答案 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 }}