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