如果验证失败,则不更新实体Symfony [form]

问题描述 投票:2回答:1

使用Symfony 3.4,当输入字段与正则表达式不匹配时,我不想更新并得到正确的错误。

这是我在实体内的电话字段

     /**
     * @var string
     *
     * @ORM\Column(name="phone", type="string", length=20, unique=true, nullable=false)
     * @Assert\NotBlank(message="Phone is required.")
     * @Assert\Regex(
     *      pattern=Presenter::PHONE_REGEX,
     *      message="Not a valid phone number"
     * )
     */
    private $phone;

我尝试在$phone内设置setPhone($phone)时捕获错误,如下所示

    /**
     * Set phone
     *
     * @param string $phone
     *
     * @return Worker
     */
    public function setPhone($phone)
    {
        if (preg_match(Presenter::PHONE_REGEX, $phone))
            $this->phone = $phone;
        return $this;
    }

并且我收到“需要电话”消息,而不是“不是有效的电话号码”(因为在WorkerType中需要电话)。>>

我搜索过google,发现github上的一个线程没有得到最终结果。我确实需要有关如何正确阻止实体更新并为其获取正确错误的帮助。

使用Symfony 3.4,当输入字段与正则表达式不匹配时,我不想更新并得到正确的错误。这是我的实体/ ** * @var字符串* * @ORM \ Column(...

php doctrine symfony-3.4
1个回答
0
投票

通过PRE_SUBMIT事件在电话的WorkerType字段中添加'mapped' => false参数。

© www.soinside.com 2019 - 2024. All rights reserved.