【问题标题】:Slim Framework 3. How to set $baseURL for all views to use?Slim Framework 3. 如何设置 $baseURL 供所有视图使用?
【发布时间】:2016-09-02 17:51:46
【问题描述】:

我可以在每条路由中像这样获取和设置 $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 并在每个路线/视图中使用它?

【问题讨论】:

  • 你的瘦身模式是什么?
  • 在 index.php 中,环境值已经设置好了。喜欢$_ENV['SLIM_MODE'] = "local";。如果您设置本地意味着编辑您的 local.config.php 文件,如 ConfigHelper::write('baseUrl', "http://yyyyyyyy.com");
  • @MansoorH 对不起,我不明白。我在整个纤细的骨架中搜索术语“SLIM_MODE”,它在任何地方都不存在。也找不到local.config.php。
  • Slim Framework Base URL的可能重复
  • @ShivamMathur 用于 Slim v2。

标签: php slim


【解决方案1】:

当您注册 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 }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2013-06-12
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多