symfony构造器错误不存在此类服务

时间:2019-04-29 14:48:30

标签: symfony

我是symfony的新手,我想使用构造函数,但是它不起作用,我也不明白为什么

error:
Cannot autowire service \App\Controller\OutputController argument $product of method &__construct() references class App\Entity\Product but no such service exists.



<?php

    namespace App\Controller;
    use App\Entity\Product;

    class OutputController  {

        private $product;
        public function __construct(Product $product)    
        {
            $this->product = $product;
        }

        public function jsonFormat() {                     
            return json_encode($this->product->toArray());
        }

    }
?>

谢谢

1 个答案:

答案 0 :(得分:1)

您使用自动装配,并尝试自动装配实体。默认情况下,此配置行从默认app/config/services.yml中将它们公开为服务:

App\:
        resource: '../src/*'
        exclude: '../src/{Entity,Migrations,Tests,Kernel.php}'

如您所见,symfony公开了src/*中的所有文件,但以下文件除外:

  

实体,迁移,测试,Kernel.php


您不应将实体公开为服务,也不应依赖控制器中的实体Use services for that