【发布时间】:2023-01-30 23:17:23
【问题描述】:
在 Sylius 1.11 中,在使用 maker 包创建一个新的 Campaign 实体后,我在尝试使用其存储库获取活动时遇到此错误:
无法自动连接服务“App\Repository\CampaignRepository”:方法“Doctrine\ORM\EntityRepository::__construct()”的参数“$class”引用类“Doctrine\ORM\Mapping\ClassMetadata”但不存在此类服务。
这似乎是触发错误的代码:
<?php namespace App\Controller; use App\Repository\CampaignRepository; class CampaignController extends AbstractController { protected CampaignRepository $repository; public function __construct(CampaignRepository $repository) { $this->repository = $repository; } public function details(string $id) { $campaign = $this->repository->find($id); dd($campaign); } }
App\Repository\CampaignRepository存在并定义如下,也就是the Sylius documentation recommends:<?php namespace App\Repository; use App\Entity\Campaign; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Sylius\Bundle\ResourceBundle\Doctrine\ORM\EntityRepository; /** * @extends ServiceEntityRepository<Campaign> * * @method Campaign|null find($id, $lockMode = null, $lockVersion = null) * @method Campaign|null findOneBy(array $criteria, array $orderBy = null) * @method Campaign[] findAll() * @method Campaign[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) */ class CampaignRepository extends EntityRepository { }如何修复此错误?
【问题讨论】: