Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在symfony控制器中获取服务的参数?_Php_Symfony - Fatal编程技术网

Php 如何在symfony控制器中获取服务的参数?

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'

假设我有一个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'); 
$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的重复。这不一样,我没有在
参数下嵌套配置,是的,看看第二个答案,这就是你要找的。