我有一个表格,其中为产品添加了参考号。我已将此字段设为唯一,因为不会有重复的参考编号。我创建了一个自定义验证器来检查给定的引用是否已经存在,但是我收到以下错误:Type error: Too few arguments to function Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints\DuplicateReferenceValidator::__construct(), 0 passed in /var/www/html/vendor/symfony/symfony/src/Symfony/Component/Validator/ContainerConstraintValidatorFactory.php on line 52 and exactly 1 expected我似乎无法让我GlassesRepository在DuplicateReferenceValidator数据传输对象:<?phpnamespace Backend\Modules\Glasses\Domain\Glasses;use Backend\Modules\Glasses\Domain\Brand\Brand;use Backend\Modules\MediaLibrary\Domain\MediaGroup\MediaGroup;use Common\Doctrine\Entity\Meta;use Symfony\Component\Validator\Constraints as Assert;use Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints as CustomAssert;class GlassesDataTransferObject{/*** Other fields ***/ /** * @var string * * @Assert\NotBlank(message="err.FieldIsRequired") * @CustomAssert\DuplicateReference */ public $reference;/*** Other fields ***/重复引用.php<?phpnamespace Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints;use Symfony\Component\Validator\Constraint;/** * @Annotation */class DuplicateReference extends Constraint{ public $message = '"{{ reference }}" already exists.';}DuplicateReferenceValidator.php<?phpnamespace Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints;use Backend\Modules\Glasses\Domain\Glasses\GlassesRepository;use Symfony\Component\Validator\Constraint;use Symfony\Component\Validator\ConstraintValidator;use Symfony\Component\Validator\Exception\UnexpectedTypeException;class DuplicateReferenceValidator extends ConstraintValidator{ private $repository; /** * DuplicateUserValidator constructor. */ public function __construct(GlassesRepository $repository) { $this->repository = $repository; }
1 回答

呼如林
TA贡献1798条经验 获得超3个赞
我自己想通了。
我需要将实体管理器添加到我的services.yml
文件中,以便能够在验证器中访问它。
Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints\DuplicateReferenceValidator: attributes: - "@doctrine.orm.entity_manager"
- 1 回答
- 0 关注
- 147 浏览
添加回答
举报
0/150
提交
取消