CakePHP 是一個(gè)用於實(shí)現(xiàn)動(dòng)態(tài)程式設(shè)計(jì)應(yīng)用程式的開(kāi)源工具,並為開(kāi)發(fā)人員提供了不同類型的功能。驗(yàn)證是 CakePHP 提供的功能之一,透過(guò)使用驗(yàn)證,我們可以根據(jù)我們的要求為任意資料數(shù)組提供驗(yàn)證。在 CakePHP 中,我們需要在資料驗(yàn)證之前根據(jù)形狀和大小建立實(shí)體。這裡我們還需要考慮預(yù)設(shè)實(shí)體,這些實(shí)體將在實(shí)體對(duì)話之前進(jìn)行驗(yàn)證。我們也可以根據(jù)我們的要求應(yīng)用驗(yàn)證規(guī)則。
開(kāi)始您的免費(fèi)軟體開(kāi)發(fā)課程
網(wǎng)頁(yè)開(kāi)發(fā)、程式語(yǔ)言、軟體測(cè)試及其他
什麼是 CakePHP 驗(yàn)證?
資訊批準(zhǔn)是任何應(yīng)用程式的重要組成部分,因?yàn)樗兄洞_保模型中的資訊適應(yīng)應(yīng)用程式的業(yè)務(wù)規(guī)則。例如,您應(yīng)該確保密碼長(zhǎng)度約為八個(gè)字符,或保證使用者名稱是特殊的。表徵批準(zhǔn)規(guī)則使結(jié)構(gòu)處理變得更加簡(jiǎn)單。
對(duì)於審批週期有不同的看法。我們將在本節(jié)中介紹的是模型方面的內(nèi)容。基本上:當(dāng)您為模型呼叫 save() 技術(shù)時(shí)會(huì)發(fā)生什麼。有關(guān)如何處理顯示審批錯(cuò)誤的更多資料。
CakePHP 驗(yàn)證方法
現(xiàn)在讓我們來(lái)看看CakePHP中不同的驗(yàn)證方法如下。
1.加
將另一個(gè)標(biāo)準(zhǔn)加入到欄位的標(biāo)準(zhǔn)集中。如果後續(xù)爭(zhēng)用是一個(gè)簇,則該欄位的規(guī)則清單將被第二個(gè)爭(zhēng)用所取代,而第三個(gè)爭(zhēng)用將被忽略。
文法
Add(string $specified field, array|string $specified name, array|Cake\Validation\ValidationRule $required rule [])
說(shuō)明
在上面的語(yǔ)法中,我們使用不同參數(shù)的 add 方法。在上面的語(yǔ)法中,指定名稱用於定義我們需要新增的規(guī)則的名稱。此陣列用於根據(jù)要求定義此規(guī)則或多個(gè)規(guī)則,並傳回 $this.
2.允許空
透過(guò)使用這個(gè)方法,我們可以允許空白欄位
文法
allowEmpty(string $specified field, boolean|string|callable $whentrue, string|null msgull)
說(shuō)明
在上面的語(yǔ)法中,我們使用不同參數(shù)的 add 方法。在上面的語(yǔ)法中,指定名稱用於定義我們需要新增的規(guī)則的名稱。布林參數(shù)用於指示何時(shí)需要允許清空,這裡我們也可以在執(zhí)行建立或更新操作時(shí)根據(jù) true 或 false 進(jìn)行驗(yàn)證。訊息用於顯示訊息字段,這將返回 $this.
3.字母數(shù)字
透過(guò)使用此方法,我們可以根據(jù)我們的要求向欄位新增字母數(shù)字規(guī)則。
文法
alphanumeric (string $specified field, string|null $Msgnull, string|callable|null $whennull)
說(shuō)明
在上面的語(yǔ)法中,我們使用不同參數(shù)的字母數(shù)字方法。在上面的語(yǔ)法中,指定名稱用於定義我們需要新增的規(guī)則的名稱。將另一個(gè)標(biāo)準(zhǔn)新增至欄位的標(biāo)準(zhǔn)集中。如果後續(xù)爭(zhēng)用是一個(gè)簇,則該欄位的規(guī)則清單將被第二次爭(zhēng)用取代,第三次爭(zhēng)用將被忽略,並傳回 $this。
4.信用卡
透過(guò)該方法,我們可以根據(jù)需要在指定欄位中新增信用卡規(guī)則。
文法
creditCard(string $specified field , string $type'all', string|null $msgnull, string|callable|null $whennull)
說(shuō)明
在上面的語(yǔ)法中,我們使用信用卡的方法來(lái)新增具有不同參數(shù)的規(guī)則。您需要應(yīng)用標(biāo)準(zhǔn)的領(lǐng)域。
您需要允許的卡片類型。預(yù)設(shè)為“全部”。您還可以提供多種認(rèn)可的卡片類型,例如“mastercard”、“visa”、“amex”。
標(biāo)準(zhǔn)達(dá)不到標(biāo)準(zhǔn)時(shí)的錯(cuò)誤訊息。當(dāng)應(yīng)該應(yīng)用批準(zhǔn)規(guī)則並傳回 $this 時(shí),「make」或「update」或一個(gè)可呼叫的函數(shù)有效。
5.電子郵件
透過(guò)使用此方法,我們可以根據(jù)我們的要求向該欄位新增電子郵件驗(yàn)證規(guī)則。
文法
Email(string $specified field , boolean $checkMXfalse, string|null $msgnull, string|callable|null, $whennull)
說(shuō)明
透過(guò)使用上面的語(yǔ)法,我們可以實(shí)作電子郵件驗(yàn)證規(guī)則。您也需要應(yīng)用標(biāo)準(zhǔn)的領(lǐng)域。
無(wú)論是否檢查MX記錄。
標(biāo)準(zhǔn)失敗時(shí)的錯(cuò)誤訊息。
當(dāng)需要套用核準(zhǔn)規(guī)則時(shí),「製作」或「更新」或可呼叫的函數(shù)有效。
6.最大長(zhǎng)度
透過(guò)使用此方法,我們可以對(duì)欄位套用字串驗(yàn)證。
文法
maxLength(string $specified field, integer $max, string|null $msgnull, string|callable|null $whennull)
說(shuō)明
In the above syntax, we use the maxLength method with different parameters. Here the specified field is used to define the field to which we want to apply the rule, max is used to define the maximum length of string, msgnull is used to show an error message when the rule fails.
7. minLength
By using this method, we can apply string validation to the field.
Syntax
minLength(string $specified field, integer $min, string|null $msgnull, string|callable|null $whennull)
Explanation
In the above syntax, we use the minLength method with different parameters. Here the specified field is used to define the field which we want to apply the rule, min is used to define the minimum length of string, msgnull is used to show an error message when the rule fails.
How to Create CakePHP Validation?
Now let’s see how we can create CakePHP validation with examples as follows.?First, we need to make the changes in routes.php file as follows.
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']); $builder->connect('validation',['controller'=>'Valid','action'=>'index']); $builder->fallbacks(); }); ?>
Now create an index.php file and write the following code as follows.
<?php if($errors) { foreach($errors as $error) foreach($error as $mssg) echo '<font color="red">'.$mssg.'</font><br>'; } else { echo "There is no errors."; } echo $this->Form->create(NULL,array('url'=>'/validation')); echo $this->Form->control('username of person'); echo $this->Form->control('password'); echo $this->Form->button('Submit'); echo $this->Form->end(); ?>
Now execute the above code we will get the following screen as shown below screenshot.
Suppose let’s consider, if we enter only password then it shows username is required as shown in the following screenshot.
Similarly, we can apply validation for username of person filed as shown in the following screenshot as follows.
In this way, we can implement different methods such as to get, post as per our requirement.
Conclusion
We hope from this article you learn more about the CakePHP validation. From the above article, we have taken in the essential idea of the CakePHP validation and we also see the representation and example of the CakePHP validation. From this article, we learned how and when we use the CakePHP validation.
以上是CakePHP 驗(yàn)證的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

在PHP中獲取當(dāng)前會(huì)話ID的方法是使用session_id()函數(shù),但必須先調(diào)用session_start()才能成功獲取。 1.調(diào)用session_start()啟動(dòng)會(huì)話;2.使用session_id()讀取會(huì)話ID,輸出類似abc123def456ghi789的字符串;3.若返回為空,檢查是否遺漏session_start()、用戶是否首次訪問(wèn)或會(huì)話是否被銷毀;4.會(huì)話ID可用於日誌記錄、安全驗(yàn)證和跨請(qǐng)求通信,但需注意安全性。確保正確開(kāi)啟會(huì)話後即可順利獲取ID。

要從PHP字符串中提取子字符串,可使用substr()函數(shù),其語(yǔ)法為substr(string$string,int$start,?int$length=null),若未指定長(zhǎng)度則截取至末尾;處理多字節(jié)字符如中文時(shí)應(yīng)使用mb_substr()函數(shù)以避免亂碼;若需根據(jù)特定分隔符截取字符串,可使用explode()或結(jié)合strpos()與substr()實(shí)現(xiàn),例如提取文件名擴(kuò)展名或域名。

UnittestinginPHPinvolvesverifyingindividualcodeunitslikefunctionsormethodstocatchbugsearlyandensurereliablerefactoring.1)SetupPHPUnitviaComposer,createatestdirectory,andconfigureautoloadandphpunit.xml.2)Writetestcasesfollowingthearrange-act-assertpat

在PHP中,最常用的方法是使用explode()函數(shù)將字符串拆分為數(shù)組。該函數(shù)通過(guò)指定的分隔符將字符串分割成多個(gè)部分並返回?cái)?shù)組,語(yǔ)法為explode(separator,string,limit),其中separator為分隔符,string為原字符串,limit為可選參數(shù)控制最大分割數(shù)量。例如$str="apple,banana,orange";$arr=explode(",",$str);結(jié)果為["apple","bana

JavaScript的數(shù)據(jù)類型分為原始類型和引用類型。原始類型包括string、number、boolean、null、undefined和symbol,其值不可變且賦值時(shí)復(fù)制副本,因此互不影響;引用類型如對(duì)象、數(shù)組和函數(shù)存儲(chǔ)的是內(nèi)存地址,指向同一對(duì)象的變量會(huì)相互影響。判斷類型可用typeof和instanceof,但需注意typeofnull的歷史問(wèn)題。理解這兩類差異有助於編寫(xiě)更穩(wěn)定可靠的代碼。

std::chrono在C 中用於處理時(shí)間,包括獲取當(dāng)前時(shí)間、測(cè)量執(zhí)行時(shí)間、操作時(shí)間點(diǎn)與持續(xù)時(shí)間及格式化解析時(shí)間。 1.獲取當(dāng)前時(shí)間使用std::chrono::system_clock::now(),可轉(zhuǎn)換為可讀字符串但係統(tǒng)時(shí)鐘可能不單調(diào);2.測(cè)量執(zhí)行時(shí)間應(yīng)使用std::chrono::steady_clock以確保單調(diào)性,並通過(guò)duration_cast轉(zhuǎn)換為毫秒、秒等單位;3.時(shí)間點(diǎn)(time_point)和持續(xù)時(shí)間(duration)可相互操作,但需注意單位兼容性和時(shí)鐘紀(jì)元(epoch)

在PHP中,要將一個(gè)會(huì)話變量傳到另一個(gè)頁(yè)面,關(guān)鍵在於正確開(kāi)啟會(huì)話並使用相同的$_SESSION鍵名。 1.每個(gè)頁(yè)面使用session變量前必須調(diào)用session_start(),且放在腳本最前面;2.在第一個(gè)頁(yè)面設(shè)置session變量如$_SESSION['username']='JohnDoe';3.在另一頁(yè)面同樣調(diào)用session_start()後通過(guò)相同鍵名訪問(wèn)變量;4.確保每個(gè)頁(yè)面都調(diào)用session_start()、避免提前輸出內(nèi)容、檢查服務(wù)器上session存儲(chǔ)路徑可寫(xiě);5.使用ses

toAccessenvironmentVariablesInphp,useGetenv()或$ _envsuperglobal.1.getEnv('var_name')retievesSpecificvariable.2。 $ _ en v ['var_name'] accessesvariablesifvariables_orderInphp.iniincludes“ e” .setVariablesViaCliWithvar = vualitephpscript.php,inapach
