升级到Symfony 3.3之后 . 我明白了:
PHP致命错误:未捕获的Symfony \ Component \ DependencyInjection \ Exception \ InvalidArgumentException:在服务“authbundle.auth.repository.role”的方法“setRoles()”的参数中找到无效的键“roles”:只有整数或$ named参数是允许 . 在/app/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/ResolveNamedArgumentsPass.php:47
这是我的服务定义:
authbundle.auth.repository.role:
class: AuthBundle\Auth\Repository\RoleRepository
在这里,我在 AuthExtension
类中为该服务注入自定义配置:
public function load(array $configs, ContainerBuilder $container)
{
$loader = new YamlFileLoader($container, new FileLocator(dirname(__DIR__).'/Resources/config'));
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader->load('services.yml');
$roleRepositoryDef = $container->getDefinition('authbundle.auth.repository.role');
$roleRepositoryDef->addMethodCall('setRoles', ['roles' => $config['roles']]);
}
有什么想法吗?
1 回答
结果我的方法调用不正确,我不得不改变它
$roleRepositoryDef->addMethodCall('setRoles', ['roles' => $config['roles']]);
$roleRepositoryDef->addMethodCall('setRoles', [$config['roles']]);
所以参数没有命名