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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Symfony 用戶注冊表驗證錯誤

Symfony 用戶注冊表驗證錯誤

PHP
慕斯709654 2021-10-15 15:45:38
我已經(jīng)按照 Symfony文檔開發(fā)了一個基本的用戶注冊表。嘗試提交密碼和失敗登錄計數(shù)不能為空的表單時,我收到驗證錯誤:data.password       This value should not be nulldata.failedLogins   This value should not be nullRegistrationFormType 類:public function buildForm(FormBuilderInterface $builder, array $options){    $builder        ->add('firstname', TextType::class, ['label'=> false, 'attr' => ['placeholder' => 'First name']])        ->add('lastname', TextType::class, ['label'=> false, 'attr' => ['placeholder' => 'Last name']])        ->add('email', EmailType::class, ['label'=> 'Email address', 'attr' => ['placeholder' => 'Email address']])        ->add('plainPassword', PasswordType::class, [            'label' => 'Password',            'attr' => ['placeholder' => 'Must be at least 6 characters'],            'mapped' => false,            'constraints' => [                new NotBlank([                    'message' => 'Please enter a password',                ]),                new Length([                    'min' => 6,                    'minMessage' => 'Your password should be at least {{ limit }} characters',                    // max length allowed by Symfony for security reasons                    'max' => 4096,                ]),            ],        ])    ;}public function configureOptions(OptionsResolver $resolver){    $resolver->setDefaults([        'data_class' => User::class,    ]);}用戶實體:/*** @var string The hashed password* @ORM\Column(name="password", type="string", length=255, nullable=false, options={"fixed"=true})*/private $password;/** * @var int * * @ORM\Column(name="failed_logins", type="integer", nullable=false) */private $failedLogins;問題似乎是表單驗證器返回 false,因為它需要 'password' 和 'failedLogins' 字段。如代碼示例所示,我不想在表單中包含這些字段并在提交表單后處理它們...如果我向表單構(gòu)建器添加虛擬隱藏字段,則表單處理正常:->add('password', HiddenType::class, ['data' => 'abc'])->add('failedLogins', HiddenType::class, ['data' => 0])然而,這似乎不是正確的方法。任何有關(guān)為什么在表單生成器中未包含這些字段時會驗證這些字段的見解將非常感謝。
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻1836條經(jīng)驗 獲得超5個贊

我相信您有兩個不同的問題,因為驗證是針對與表單相關(guān)的實體完成的。

從表單驗證文檔:

Symfony,驗證應(yīng)用于底層對象(例如任務(wù))。換句話說,問題不在于“表單”是否有效,而是在表單將提交的數(shù)據(jù)應(yīng)用到它之后 $task 對象是否有效。調(diào)用 $form->isValid() 是詢問 $task 對象是否有有效數(shù)據(jù)的快捷方式。


  1. 您的密碼password在 entity 中命名User,但plainPassword在表單中。驗證函數(shù)不會plainPassword在實體中找到屬性并返回data.password This data should not be null。因此,您只需將表單字段名稱更改為password

  2. failedLogins的實體中有 a ,但它不存在于表單中。默認情況下,表單驗證會檢查所有實體的屬性。正如failedLogins聲明的那樣nullable=false,驗證將返回data.failedLogins This data should not be null。在這種情況下,您需要驗證組,允許您選擇User將在表單驗證中考慮的屬性。


查看完整回答
反對 回復(fù) 2021-10-15
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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