未加载fos_oauth_server.client_manager.default

问题描述 投票:0回答:1

我从上周开始尝试让FOS Auth Server Bundle与Symfony4一起工作。如果我想使用我创建的create client命令,则会显示此错误消息。

编译容器时,已删除或内联“fos_oauth_server.client_manager.default”服务或别名。您应该将其公开,或者直接停止使用容器并改为依赖注入。

有没有人有同样的问题?

symfony authentication fosrestbundle fosoauthserverbundle
1个回答
4
投票

我也有同样的问题。试图像这样注入服务:

    <?php
namespace App\Command;

use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use FOS\OAuthServerBundle\Entity\ClientManager;

class CreateClientCommand extends ContainerAwareCommand
{
    protected static $defaultName = 'create:client';
    private $client_manager;

    public function __construct(ClientManager $client_manager)
    {
        parent::__construct();
        $this->client_manager = $client_manager;       
    }

但我得到了错误:

Cannot autowire service "App\Command\CreateClientCommand": argument "$client_manager" of method "__construct()" ref  
  erences class "FOS\OAuthServerBundle\Entity\ClientManager" but no such service exists. It cannot be auto-registered  
   because it is from a different root namespace.

所以我在services.yaml中注册了我的命令:

App\Command\CreateClientCommand:
         arguments:
            $client_manager: '@fos_oauth_server.client_manager.default' 

现在它工作:)

© www.soinside.com 2019 - 2024. All rights reserved.