doubao6681 2017-11-10 11:24
浏览 92

对控制器的Doctrine manager类注入不起作用

In my bundle I need to initialize my doctrine manager class (as a service and using ManagerRegistry) in constructor of controller, but symfony still throws this exception:

Type error: Too few arguments to function AdminBundle\Controller\RegistraceController::__construct(), 0 passed in C:\apache\htdocs\mujProjekt\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Controller\ControllerResolver.php on line 198 and exactly 1 expected

Controller:

namespace AdminBundle\Controller;

use AdminBundle\Manager\AdminManager;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

/**
* Class DefaultController
* @package AdminBundle\Controller
* @Route("/registrace")
*/
class RegistraceController extends Controller
{
   /**
    * @var AdminManager
    */
   private $manager;

   public function __construct(AdminManager $manager)
   {
       $this->manager = $manager;
   }

   ...

AdminManager:

namespace AdminBundle\Manager;

use AdminBundle\Entity\Uzivatel;
use Doctrine\Common\Persistence\ManagerRegistry;

class AdminManager
{
    private $em;

    public function __construct(ManagerRegistry $Doctrine)
    {
        $this->em = $Doctrine->getManager('default');
    }

 ...

AdminBundle\Resources\config\services.yml :

services:
#    admin.example:
#        class: AdminBundle\Example
#        arguments: ["@service_id", "plain_value", "%parameter%"]
    admin.admin_manager:
        class: AdminBundle\Manager\AdminManager
        arguments:
            ["@doctrine"]

I tried to clear cache, but no success. The services.yml from AdminBundle is correctly included in config.yml.

orm config in config.yml:

    orm:
    auto_generate_proxy_classes: '%kernel.debug%'
    default_entity_manager: default
    entity_managers:
        default:
            connection: default
            mappings:
                AdminBundle:  ~

I'm using Symfony 3.3 and PHP 7.1.

  • 写回答

3条回答 默认 最新

  • dsns47611 2017-11-10 11:43
    关注

    So i think your service yml need to look like that:

    services:
        admin.admin_manager:
            class: AdminBundle\Manager\AdminManager
            arguments: ["@doctrine"]
        admin.admin_controller:
            class: AdminBundle\Controller\RegistraceController
            arguments: ["@admin.admin_manager"]
    

    Look up here Symfony Service Container

    Hope it will help!

    Greetings :)

    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度