Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获取具有唯一约束的错误消息_Php_Symfony_Doctrine Orm - Fatal编程技术网

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

Php 如何获取具有唯一约束的错误消息,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我有一个表格,其中添加了产品的参考号。我将此字段设置为唯一字段,因为不会有重复的参考号 我遇到的问题是,当我添加一个已经附加到另一个产品的参考号时,我遇到了一个异常完整性约束冲突:1062键“reference”的重复条目。相反,我希望表单向用户显示一条消息,告知他们引用已经在使用中 编辑:我创建了一个自定义验证器来检查给定的引用是否已经存在,但我发现以下错误: 类型错误:函数Backend\Modules\glass\Domain\glass\Validator\Constraints\Dup

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

我遇到的问题是,当我添加一个已经附加到另一个产品的参考号时,我遇到了一个异常
完整性约束冲突:1062键“reference”的重复条目
。相反,我希望表单向用户显示一条消息,告知他们引用已经在使用中

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

类型错误:函数Backend\Modules\glass\Domain\glass\Validator\Constraints\DuplicateReferenceValidator::\uu construct(),0传入/var/www/html/vendor/symfony/symfony/src/symfony/Component/Validator/containerconstraintvalidatorfactor.php第52行,预期正好是1

我似乎无法在
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 ***/

我自己想出来的

我需要将实体管理器添加到我的
services.yml
文件中,以便能够在验证器中访问它

Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints\DuplicateReferenceValidator:
        attributes:
            - "@doctrine.orm.entity_manager"

我自己想出来的

我需要将实体管理器添加到我的
services.yml
文件中,以便能够在验证器中访问它

Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints\DuplicateReferenceValidator:
        attributes:
            - "@doctrine.orm.entity_manager"
我能应付。我能应付。
Backend\Modules\Glasses\Domain\Glasses\Validator\Constraints\DuplicateReferenceValidator:
        attributes:
            - "@doctrine.orm.entity_manager"