【问题标题】:how to access base url in twig from symfony 2 console?如何从 symfony 2 控制台访问 twig 中的基本 url?
【发布时间】:2013-07-26 08:05:44
【问题描述】:

我正在逐渐将我在 Kohana 中的网站移植到 Symfony 2。现在我正在 Symfony2 中编写后端命令,例如cron 发送电子邮件通知。

如何在 twig 中访问基本 url。我可以做一些配置,以便从控制台和从 http 请求访问 twig 中的 url 相同吗?

这个我已经提过了,

http://symfony.com/doc/current/cookbook/console/sending_emails.html

http://symfony.com/doc/current/cookbook/templating/global_variables.html

这里给出了如何配置它,但没有提到如何访问它,我假设我必须使用 {{ router.request_context.host }}。

但我的问题是,控制台和 HTTP 之间没有任何方法可以保持一致吗?

例如{{ 网址 }} ?

【问题讨论】:

    标签: php symfony twig


    【解决方案1】:

    在parameters.yml中添加如下设置,

    router.request_context.scheme: http
    router.request_context.host: domain.com
    base_url: '%router.request_context.scheme%://%router.request_context.host%/'
    

    在控制台命令控制器中,您可以像这样访问,

    $host =  $this->getContainer()->get('router')->getContext()->getHost();
    $scheme =  $this->getContainer()->get('router')->getContext()->getScheme();
    $baseURL = $this->getContainer()->getParameter('base_url');             
    

    【讨论】:

    • Hemant,问题是如何在 Twig 模板中访问它,而不是如何在 Controller 中访问。无论如何,这是 Vishal Melmatti 的个人资料,我已经在 git 3-4 天前修复并提交了相同的内容。 :)
    【解决方案2】:

    首先,您必须通过将以下行添加到 /app/config/routing.yml 来设置路由中的 url(您将其称为 base_url):

    base_url:
        pattern:  /
    

    之后,您必须按照 Symfony 食谱中的说明设置 router.request_context 参数。

    现在一切都设置好了,您可以在 Twig 中简单地使用与在网页中一样的 url 函数:

    {{ url('base_url') }}
    

    【讨论】:

    • 因为我现在在 symfony 2 中只有后端命令并且没有前端(现在在 kohana 中),我可以使用不带参数的 url() 来获取基本 url 吗?
    • 我更新了答案,将您的“base_url”添加为路线。你叫它base url,我叫它主页! :-)
    • 我在 symfony2 中没有主页,我只有 symfony 控制台命令。我的网站在 kohana。
    • 您可以创建一个路由,而无需实际链接控制器/动作。只需添加我的示例中提供的 base_url 路由,它就会起作用。
    • 太好了,会试试的。
    【解决方案3】:

    这对我有用。

    在 config.yml 中:

    twig:
       globals:
           base_url: "http://www.example.com/"
    

    在树枝模板中:

    {{ base_url }}
    

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 2017-06-27
      • 1970-01-01
      • 2021-09-23
      • 2018-06-04
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多