在Symfony 3.2中,我有一个捆绑包,它在<parameter key="acs_platform.security.default_target_route" type="string">platform_login</parameter>
中定义了一个参数:
parameters.xml
services.xml
被导入到同一捆绑软件的services.xml
中。
并且DependencyInjection
通过load
下捆绑包的扩展名被加载到容器中。如果我尝试在 /**
* Loads a specific configuration.
*
* @throws \InvalidArgumentException When provided tag is not defined in this extension
*/
public function load(array $configs, ContainerBuilder $container)
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.xml');
\Doctrine\Common\Util\Debug::dump($container->getParameterBag(), 6); die;
}
方法中进行转储,则可以正确看到我的参数:
php bin/console debug:container --parameters | grep "acs_platform.security.default_target_route"
如果我尝试调试容器,那是正确的,我仍然可以看到我的参数:
app/config/security.yml
当我想在安全性(firewalls:
main:
anonymous: ~
guard:
authenticators:
- acs_platform.security.loginform_authenticator
default_target_path: '%acs_platform.security.default_target_route%'
)中将此参数设置为default_target_path时,会发生问题:
ParameterNotFoundException
You have requested a non-existent parameter "acs_platform.security.default_target_route".
我收到一个错误:
acs_platform.security.loginform_authenticator
我不知道我在做什么错。该参数存在,并且安全组件仍然无法找到它。我的代码有什么问题?
(如您所见,在同一个security.yml文件中,我使用“ services.xml
”服务ID,并且我也使用了一个提供程序,它们都在导入我的{{ 1}},它们都可以工作)