黑马lavarel教程---6、简单验证
黑馬lavarel教程---6、簡單驗(yàn)證
一、總結(jié)
一句話總結(jié):
1、驗(yàn)證的最簡單實(shí)例:$request的validate方法,驗(yàn)證通過可以繼續(xù)進(jìn)行,驗(yàn)證失敗就重定向
2、中文提示可以用中文語言包
3、對語言包中的翻譯不滿意可以自己修改:驗(yàn)證的話就是修改zh-CN包中的validation.php
?
1、為什么需要做后端驗(yàn)證?
因?yàn)闉g覽器可以將頁面的js禁用
?
?
2、lavarel中如何得知一個(gè)請求類型?
語法:Input::method():返回GET或者POST
?
3、驗(yàn)證的最簡單實(shí)例?
$request的validate方法,驗(yàn)證通過可以繼續(xù)進(jìn)行,驗(yàn)證失敗就重定向
public function store(Request $request) {$validatedData = $request->validate(['title' => 'required|unique:posts|max:255','body' => 'required',]);// 博客文章驗(yàn)證通過 }?
?
4、lavarel驗(yàn)證失敗后會(huì)怎樣?
1、在典型的 HTTP 請求的情況下,會(huì)生成一個(gè)重定向響應(yīng)。
2、對于 AJAX 請求則會(huì)發(fā)送 JSON 響應(yīng)。
現(xiàn)在我們開始在 store 方法中編寫邏輯來驗(yàn)證新的博客文章。為此,我們將使用 Illuminate\Http\Request 對象提供的 validate 方法 。如果驗(yàn)證通過,代碼就可以正常的運(yùn)行。如果驗(yàn)證失敗,則會(huì)拋出異常,并自動(dòng)將對應(yīng)的錯(cuò)誤響應(yīng)返回給用戶。在典型的 HTTP 請求的情況下,會(huì)生成一個(gè)重定向響應(yīng),而對于 AJAX 請求則會(huì)發(fā)送 JSON 響應(yīng)。
?
5、驗(yàn)證如何返回中文驗(yàn)證提示?
除了自定義提示,還下載中文語言包,在 配置里面將語言設(shè)置為中文
1、網(wǎng)址:https://packagist.org??? composer主要的代碼托管網(wǎng)站
2、在官網(wǎng)搜索laravel-lang
3、安裝命令:# composer require caouecs/laravel-lang:~3.0
?
6、驗(yàn)證中字符串和數(shù)字的min和max分別代表什么?
字符串就是字符串長度,數(shù)字就是數(shù)字大小
?
7、lavarel使用語言包步驟(caouecs/laravel-lang插件的步驟說的特別詳細(xì))?
1、For Laravel 5.8-6.0 : run composer require caouecs/laravel-lang:~4.0 in your project folder
2、Copy the folders of languages that you want, in the resources/lang folder of your Laravel application .
3、In the file config/app.php, change the value of locale by the short name of your language .
?
8、如果對中文語言包中的驗(yàn)證的翻譯不滿意,要去修改哪?
修改zh-CN包中的validation.php(就是一個(gè)對應(yīng)關(guān)系的數(shù)組),按照自己需求改就行
?
?
?
?
二、簡單驗(yàn)證
一般一個(gè)框架都會(huì)提供自動(dòng)驗(yàn)證的機(jī)制,在TP里面的驗(yàn)證的規(guī)則是寫在模型里面進(jìn)行驗(yàn)證的,但是自laravel里面的思想有些不一樣,它的驗(yàn)證規(guī)則可以在控制器里面,也可以單獨(dú)的寫一個(gè)專門的驗(yàn)證文件。并且laravel里面的驗(yàn)證不通過情況下的提示信息和表單數(shù)據(jù)是保存在session里面的,并且驗(yàn)證不通過的情況下會(huì)跳到上一個(gè)頁面。
?
在前端頁面中可以通過JavaScript驗(yàn)證表單的數(shù)據(jù)有效性,但是如果用戶的瀏覽器過低或者直接禁用js,則前端驗(yàn)證則可能會(huì)失效,這樣就不能保證數(shù)據(jù)的有效性。所以后端也需做相應(yīng)的驗(yàn)證操作,這個(gè)操作在laravel中稱之為自動(dòng)驗(yàn)證(在ThinkPHP中也有自動(dòng)驗(yàn)證)。
1、準(zhǔn)備工作
①可以使用有表單的頁面(視圖),此處可以使用之前的test12.blade.php模版文件
創(chuàng)建需要的路由、方法
?
?
?
?
?
?
?
?
?
?
?
2、驗(yàn)證方式一(控制器方式驗(yàn)證:推薦)
建議去查看手冊
(1)基本語法
使用控制器中的validate方法來完成,$this->validate($request,[驗(yàn)證規(guī)則]);
如果驗(yàn)證失敗,laravel會(huì)自動(dòng)將用戶重定向回上一個(gè)位置,并將驗(yàn)證錯(cuò)誤信息一次性存放到session中。
請求驗(yàn)證:
?
?
?
?
擴(kuò)展補(bǔ)充:如何得知一個(gè)請求類型?
語法:Input::method()??????????????? 返回GET或者POST
?
?
?
?
(2)基本驗(yàn)證規(guī)則
required: 不能為空
max:255最長255個(gè)字符,
min:1最少1個(gè)字符
email:驗(yàn)證郵箱是否合法
confirmed:驗(yàn)證兩個(gè)字段是否相同,如果驗(yàn)證的字段是password,則必須輸入一個(gè)與之匹配的password_confirmation字段
integer:驗(yàn)證字段必須是整型
ip:驗(yàn)證字段必須是IP地址
numeric 驗(yàn)證字段必須是數(shù)值
max:value 驗(yàn)證字段必須小于等于最大值,和字符串,數(shù)值,文件字段的size規(guī)則一起使用。
min:value 驗(yàn)證字段的最小值,對字符串、數(shù)值、文件字段而言,和size規(guī)則使用方式一致。
size:value 驗(yàn)證字段必須有和給定值value想匹配的尺寸,對字符串而言,value是相應(yīng)的字符數(shù)目,對數(shù)值而言,value是給定整型值;對文件而言,value是相應(yīng)的文件字節(jié)數(shù)。
string 驗(yàn)證字段必須是字符串
unique:表名,字段,需要排除的ID
注意:多個(gè)驗(yàn)證規(guī)則可以通過 "|" 字符進(jìn)行隔開
?
語法:$this -> validate(數(shù)據(jù)對象,[數(shù)組形式的驗(yàn)證規(guī)則]);
?
?
?
?
(3)輸出錯(cuò)誤信息
?
?
?
?
?
?
?
?
?
?
?
效果:
?
?
?
(4)把輸出效果轉(zhuǎn)換成中文
由于中文和英文都是屬于語言范疇,如果要切換提示文字,則需要有中文語言包的支持。目前框架只有en語言包,則需要其他語言包需要去下載。
?
網(wǎng)址:https://packagist.org??? composer主要的代碼托管網(wǎng)站
?
在官網(wǎng)搜索laravel-lang
?
?
?
?
注意:后期下載軟件依賴的時(shí)候一般會(huì)綜合一下下載量和收藏量進(jìn)行下載選擇。
?
?
①需要尋找下載命令
?
?
?
?
安裝命令:# composer require caouecs/laravel-lang:~3.0
?
②使用composer進(jìn)行安裝
在項(xiàng)目根目錄下運(yùn)行上述的命令
?
?
?
?
③使用方法
?
?
?
翻譯:
???????? 語言包文件在vendor/caoue/laravel-lang中;將你需要的語言目錄復(fù)制到resources/lang目錄下即可。
?
?
?
?
將需要的語言包復(fù)制到語言包目錄:
?
?
?
?
根據(jù)提示:
?
?
?
翻譯:在文件(config/app.php)中修改locale的值,改成你需要使用的語言簡稱。
簡稱其實(shí)就是語言包的文件夾名稱。
?
?
?
?
?
測試效果:
?
?
?
?
注意:并不是所有的字段都有對應(yīng)的翻譯(或者有的翻譯可能不是很準(zhǔn)確),如果想自己定義翻譯,則需要去修改語言包文件代碼。
?
?
?
修改后續(xù)的值,或者新增需要的元素:
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/Renyi-Fan/p/11558084.html
總結(jié)
以上是生活随笔為你收集整理的黑马lavarel教程---6、简单验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 心得体悟帖---13、编程和学习同时进行
- 下一篇: 后盾网lavarel视频项目---4、l