第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Symfony 4 自定義驗(yàn)證器約束未加載

Symfony 4 自定義驗(yàn)證器約束未加載

PHP
繁星淼淼 2022-10-28 15:20:50
我正在嘗試在https://symfony.com/doc/current/validation/custom_constraint.html中描述的 Symfony 4.4 項(xiàng)目中創(chuàng)建自定義驗(yàn)證器我添加了下一個(gè)文件:src/Validator/Constraints/PhoneNumber.php<?phpnamespace App\Validator\Constraints;use Symfony\Component\Validator\Constraint;/** * @Annotation */class PhoneNumber extends Constraint{    public $message = 'The string contains an illegal character: it can only contain letters or numbers.';}src/Validator/Constraints/PhoneNumberValidator.phpnamespace App\Validator\Constraints;use Symfony\Component\Validator\Constraint;use Symfony\Component\Validator\ConstraintValidator;use Symfony\Component\Validator\Exception\UnexpectedTypeException;use Symfony\Component\Validator\Exception\UnexpectedValueException;class PhoneNumberValidator extends ConstraintValidator{    public function validate($value, Constraint $constraint)    {        dd('er wordt gevalideerd!');        if (!$constraint instanceof PhoneNumber) {            throw new UnexpectedTypeException($constraint, PhoneNumber::class);        }        // custom constraints should ignore null and empty values to allow        // other constraints (NotBlank, NotNull, etc.) take care of that        if (null === $value || '' === $value) {            return;        }        if (!is_string($value)) {            // throw this exception if your validator cannot handle the passed type so that it can be marked as invalid            throw new UnexpectedValueException($value, 'string');            // separate multiple types using pipes            // throw new UnexpectedValueException($value, 'string|int');        }        if (!preg_match('/^[a-zA-Z0-9]+$/', $value, $matches)) {            // the argument must be a string or an object implementing __toString()            $this->context->buildViolation($constraint->message)                ->setParameter('{{ string }}', $value)                ->addViolation();        }    }}在我嘗試了上述方法之后,驗(yàn)證器沒(méi)有響應(yīng)......所以接下來(lái)我嘗試將驗(yàn)證器約束添加到我的實(shí)體聯(lián)系人中。這也行不通。有人看到我做錯(cuò)了什么或?qū)ξ铱梢試L試什么有建議?提前致謝!
查看完整描述

2 回答

?
BIG陽(yáng)

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

您正在尋找的約束是否可能是從相關(guān)實(shí)體中設(shè)置的?如果是這樣,則嘗試將驗(yàn)證從第一個(gè)實(shí)體傳遞到第二個(gè)實(shí)體。


這可以通過(guò)以下方式完成:


@Assert\Valid()

不要忘記使用它:


use Symfony\Component\Validator\Constraints as Assert; 

class Contact

{


    .....



    /**

     * @ORM\Column(type="string", length=255, nullable=true)

     * @CustomAssert\PhoneNumber

     */

    private $phoneNumber;

    

    

    

class Person

{


    .....



    /**

     * @ORM\OneToOne(targetEntity="App\Entity\Contact")

     * @Assert\Valid()

     */

    private $contact;


查看完整回答
反對(duì) 回復(fù) 2022-10-28
?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以嘗試 在您的類中實(shí)現(xiàn)該validateBy方法。PhoneNumber在正常情況下,您不需要這樣做,因?yàn)槟J(rèn)行為是查找以Validator( 將是PhoneNumberValidator) 為后綴的相同約束名稱。

另一個(gè)原因可能是validate調(diào)用ValidatorInterface. 也許您正在傳遞一些驗(yàn)證組(如果您可以在此處與我們分享該部分),在這種情況下,您需要在注釋中指定@CustomAssert\PhoneNumber(groups={"some_group"})。


查看完整回答
反對(duì) 回復(fù) 2022-10-28
  • 2 回答
  • 0 關(guān)注
  • 119 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)