我正在将我在Kohana的网站逐渐移植到Symfony 2。现在我在Symfony2中编写后端命令,例如cron发送电子邮件通知。
如何在树枝中访问基本网址。我可以进行一些配置,以便从控制台和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之间没有任何方法可以保持一致吗?
e.g。 {{url}}?
答案 0 :(得分:4)
在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');
答案 1 :(得分:3)
首先,您必须通过将以下行添加到/app/config/routing.yml来设置路径中的url(您将其称为base_url):
base_url:
pattern: /
之后,您必须按照Symfony cookbook中的说明设置router.request_context参数。
现在一切都已设置好,您可以像在网页中一样使用Twig中相同的网址功能:
{{ url('base_url') }}
答案 2 :(得分:3)
这对我有用。
在config.yml中:
twig:
globals:
base_url: "http://www.example.com/"
在树枝模板中:
{{ base_url }}