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

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

Symfony 5 注冊表驗(yàn)證不起作用

Symfony 5 注冊表驗(yàn)證不起作用

PHP
慕仙森 2023-11-03 15:34:58
我剛剛第一次學(xué)習(xí) Symfony。表單驗(yàn)證沒有按預(yù)期工作,我實(shí)際上已經(jīng)按照 Symfony 文檔留下了樣板代碼,我已經(jīng)閱讀了其他堆棧溢出文章和文檔 10 遍,看看我是否錯(cuò)過了一些東西,但我無法弄清楚??蛻舳蓑?yàn)證已關(guān)閉,基本上可以很好地測試服務(wù)器端驗(yàn)證。但是,當(dāng)提交表單時(shí),即使表單為空且數(shù)據(jù)無效,isValid() 方法也會(huì)返回 true。我在 Entity 和 formType 中添加了約束,但它只是繞過了所有內(nèi)容,我知道這一點(diǎn),因?yàn)楫惓J怯蓴?shù)據(jù)庫或密碼編碼方法引發(fā)的。發(fā)現(xiàn):當(dāng)提交完全空的表單時(shí):encodePassword() 會(huì)拋出異常,因?yàn)槊艽a字段為 null 并且它需要字符串,(它甚至不應(yīng)該進(jìn)入這個(gè)階段,因?yàn)槲蚁胂?isValid() 應(yīng)該返回 false?)使用密碼和所有其他值作為空值提交:繞過所有內(nèi)容,只有數(shù)據(jù)庫拋出異常。為 uniqueCode 提交錯(cuò)誤的模式:驗(yàn)證器甚至無法識別任何內(nèi)容并每次都通過它handleRequest() 方法不會(huì)拋出任何異?;蚍祷?false,除了密碼,我收到一個(gè)非常丑陋的錯(cuò)誤,說密碼的參數(shù) 2 不能為空,所以顯然驗(yàn)證沒有發(fā)生, isValid() 返回 true。錯(cuò)誤異常來自數(shù)據(jù)庫,當(dāng)我嘗試插入具有錯(cuò)誤模式的唯一代碼時(shí),插入沒有問題,當(dāng)名稱為空時(shí),它通過驗(yàn)證,但數(shù)據(jù)庫拋出異常,當(dāng)密碼字段為空時(shí),它仍然通過驗(yàn)證,Symfony 文檔說:handleRequest() 方法將數(shù)據(jù)寫回同一個(gè)對象,然后我們驗(yàn)證數(shù)據(jù):“在上一節(jié)中,您學(xué)習(xí)了如何提交包含有效或無效數(shù)據(jù)的表單。在 Symfony 中,問題不在于“表單”是否有效,而在于底層對象(本例中的 $task)是否有效在表單應(yīng)用提交的數(shù)據(jù)后有效。調(diào)用 $form->isValid() 是一個(gè)快捷方式,詢問 $task 對象是否具有有效數(shù)據(jù)。我嘗試查看 ValidatorInterface 文檔,但其中明確指出:“大多數(shù)時(shí)候,您不會(huì)直接與驗(yàn)證器服務(wù)交互,也不需要擔(dān)心打印出錯(cuò)誤。大多數(shù)時(shí)候,您將使用在處理提交的表單數(shù)據(jù)時(shí)間接驗(yàn)證。有關(guān)更多信息,請參閱如何驗(yàn)證 Symfony 表單。”我在這里缺少什么?
查看完整描述

1 回答

?
叮當(dāng)貓咪

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

這對于 Stackoverflow 來說并不是真正正確的格式,但我們可以看看在關(guān)閉之前我們能走多遠(yuǎn)??赡苄枰^續(xù)訪問 Reddit Symfony 論壇。


從小事做起,讓以下行動(dòng)發(fā)揮作用。請注意,沒有任何實(shí)體或其他東西正在發(fā)生。只是想讓自己相信驗(yàn)證的基礎(chǔ)知識確實(shí)有效:


class RegistrationController extends AbstractController

{

    public function register(Request $request)

    {

        $form = $this->createFormBuilder()

            ->add('username', TextType::class, [

                'constraints' => new NotBlank(['message' => 'User name cannot be blank'])

            ])

            ->add('save', SubmitType::class, ['label' => 'Register'])

            ->getForm();


        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {

            dump('Validated');

        }

        return $this->render('user/register.html.twig',['form' => $form->createView()]);


    }

}


# user/register.html.twig

{% extends 'base.html.twig' %}


{% block body %}

    <h1>Register Form</h1>

    {{ form_start(form, {'attr':{'novalidate':'novalidate'}}) }}

    {{ form_end(form) }}

{% endblock %}


查看完整回答
反對 回復(fù) 2023-11-03
  • 1 回答
  • 0 關(guān)注
  • 191 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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