Php 如何在symfony控制器中获取服务的参数?
假设我有一个app/config/parameters.yml,其中包含Php 如何在symfony控制器中获取服务的参数?,php,symfony,Php,Symfony,假设我有一个app/config/parameters.yml,其中包含 parameters: database_driver: pdo_mysql ... nacho_image: upload: true progress: false key: secret_id 现在,我想在我的控制器中获取上传、进度、键,但正在进行 $this->get('upload'); $this->get('nacho_image.upload'
parameters:
database_driver: pdo_mysql
...
nacho_image:
upload: true
progress: false
key: secret_id
现在,我想在我的控制器中获取上传、进度、键
,但正在进行
$this->get('upload');
$this->get('nacho_image.upload');
$this->get('nacho.image.upload');
$this->getParameter('nacho.upload');
$this->getParameter('acho_image.upload.upload');
不起作用 不能直接获取嵌套参数。您必须获取父密钥,然后才能将所有内容作为一个数组获取
$nachoImageConfig = $this->getParameter('nacho_image');
$nachoImageUpload = $nachoImageConfig['upload'];
从文档()中:
使用过的。符号只是一种符号约定,使参数更易于读取。参数只是简单的键值元素,不能组织成嵌套数组
这就是为什么在大多数配置文件中,“parameters:”下的条目完全限定如下:
parameters:
...
nacho_image.upload: true
nacho_image.progress: false
nacho_image.key: secret_id
不能直接获取嵌套参数。您必须获取父密钥,然后才能将所有内容作为一个数组获取
$nachoImageConfig = $this->getParameter('nacho_image');
$nachoImageUpload = $nachoImageConfig['upload'];
从文档()中:
使用过的。符号只是一种符号约定,使参数更易于读取。参数只是简单的键值元素,不能组织成嵌套数组
这就是为什么在大多数配置文件中,“parameters:”下的条目完全限定如下:
parameters:
...
nacho_image.upload: true
nacho_image.progress: false
nacho_image.key: secret_id
您将收到此错误,因为您的.yml文件格式不正确。您的
nacho_图像
参数不在参数部分的范围内,但在同一级别
,因此您无法通过参数访问它
parameters:
database_driver: pdo_mysql
...
nacho_image:
upload: true
progress: false
key: secret_id
按如下所示编辑参数,然后可以访问参数
parameters:
database_driver: pdo_mysql
...
nacho_image:
upload: true
progress: false
key: secret_id
其他一切都看@CROZET的答案
如果需要从配置中访问未在
参数部分中设置的值,则可以按照中所述的方式进行访问。您会遇到此错误,因为您的.yml文件格式不正确。您的nacho_图像
参数不在参数部分的范围内,但在同一级别
,因此您无法通过参数访问它
parameters:
database_driver: pdo_mysql
...
nacho_image:
upload: true
progress: false
key: secret_id
按如下所示编辑参数,然后可以访问参数
parameters:
database_driver: pdo_mysql
...
nacho_image:
upload: true
progress: false
key: secret_id
其他一切都看@CROZET的答案
如果您需要从配置中访问一个未在参数
部分中设置的值,您可以按照中所述的方式进行操作。我得到一个错误nacho_图像的定义必须与我之前得到的定义相同
,您认为将不相关的配置嵌套在一个名称空间:parameters下有问题吗?文件缩进是否正确nacho_image
必须缩进4个空格,如database_driver
是的,缩进正确,否则yaml将抛出错误,nacho_image是另一个symfony bundle,因此可能无法共享其他bundle参数。所有参数都需要在app/config/parameters.yml
的全局文件中定义。是的,它们都在/app/config/parameters.yml
中。我没有使用其他任何东西,这是存储我的数据库凭据的同一个文件。我得到一个错误必须定义nacho_映像
与我之前得到的相同,您认为在一个名称空间:参数下嵌套不相关的配置有问题吗?您的文件缩进正确吗nacho_image
必须缩进4个空格,如database_driver
是的,缩进正确,否则yaml将抛出错误,nacho_image是另一个symfony bundle,因此可能无法共享其他bundle参数。所有参数都需要在app/config/parameters.yml
的全局文件中定义。是的,它们都在/app/config/parameters.yml
中。我没有使用其他任何东西,它是存储数据库凭据的同一个文件。如果它在参数名称空间之外或在同一级别上,我如何访问它?因为nacho_图像是另一个包,如果我把它放在参数下,另一个包将是broken@mvrht编辑我的回答如果在参数名称空间之外或在同一级别上,我如何访问?因为nacho_图像是另一个包,如果我把它放在参数下,另一个包将是broken@mvrht编辑了我的回答@KhorneHoly的可能重复项这不一样,我没有将配置嵌套在参数下
是的,看看第二个答案,这就是你要找的。可能是@KhorneHoly的重复。这不一样,我没有在参数下嵌套配置,是的,看看第二个答案,这就是你要找的。