首页 文章

Symfony升级到3.3服务参数错误

提问于
浏览
2

升级到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 回答

  • 2

    结果我的方法调用不正确,我不得不改变它

    $roleRepositoryDef->addMethodCall('setRoles', ['roles' => $config['roles']]);

    $roleRepositoryDef->addMethodCall('setRoles', [$config['roles']]);

    所以参数没有命名

相关问题