【发布时间】:2019-02-08 15:08:21
【问题描述】:
从 symfony 4 开始,我想创建一个全局参数并从控制器中获取该参数的值。
此参数是服务器中另一个应用程序的路径。所以,我想在 .env 文件中添加参数。但是如何从控制器中获取这个参数的值呢?
【问题讨论】:
从 symfony 4 开始,我想创建一个全局参数并从控制器中获取该参数的值。
此参数是服务器中另一个应用程序的路径。所以,我想在 .env 文件中添加参数。但是如何从控制器中获取这个参数的值呢?
【问题讨论】:
对于 Symfony 5
在您的.env 文件中
APP_PARAM=paramvaluehere
在你的config/services.yaml
parameters:
app.paramname: '%env(APP_PARAM)%'
在你的控制器中
$this->getParameter('app.paramname');
【讨论】:
$_SERVER['APP_PARAM']的值只在.env文件symfony.com/doc/current/cloud/cookbooks/…
$this->getParameter('app.paramname'),请确保您的控制器extends AbstractController。
如果有人仍在寻找快速解决方案但没有太多 symfonish,
在 .env 中定义你的参数
MY_PARAM='my param value'
然后在控制器中调用它
echo $_ENV['MY_PARAM'];
如果你在控制器中调用变量,你最好在parameters 部分下的config/services.yaml 中定义它,并通过parameterBag 访问它,这是非常symfonish 的方式。
【讨论】:
您是否尝试过:
$this->getParameter('your parameter');
编辑:
这可能会对你有所帮助 -> https://symfony.com/doc/current/components/dotenv.html
【讨论】:
在用户 getParameter() 之前,您必须在 services.yaml 中添加它
parameters:
your_parameter: '%env(your_parameter)%' # from .env file
【讨论】:
parameters:
your_variable: '%env(YOUR_ENV_VARIABLE)%'
$var = $this->getParameter('your_variable');
【讨论】: