如何获取具有唯一约束的错误消息

我有一个表格,其中为产品添加了参考号。我已将此字段设为唯一,因为不会有重复的参考编号。


我创建了一个自定义验证器来检查给定的引用是否已经存在,但是我收到以下错误:


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


数据传输对象:


<?php


namespace 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


<?php



namespace Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints;


use Symfony\Component\Validator\Constraint;


/**

 * @Annotation

 */

class DuplicateReference extends Constraint

{

    public $message = '"{{ reference }}" already exists.';

}

DuplicateReferenceValidator.php


<?php



namespace 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;

    }


慕丝7291255
浏览 148回答 1
1回答

呼如林

我自己想通了。我需要将实体管理器添加到我的services.yml文件中,以便能够在验证器中访问它。Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints\DuplicateReferenceValidator: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attributes: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;"@doctrine.orm.entity_manager"
打开App,查看更多内容
随时随地看视频慕课网APP