Laravel5.1 框架表單驗證操作例項詳解
阿新 • • 發佈:2020-01-09
本文例項講述了Laravel5.1 框架表單驗證操作。分享給大家供大家參考,具體如下:
當我們提交表單時 通常會對提交過來的資料進行一些驗證、Laravel在Controller類中使用了一個traint:ValidatesRequest。方便我們在控制器中使用驗證器。
下面我們就來看一個驗證表單的例子。
1 準備
1.1 建立路由
Route::resource('/post','PostController');
1.2 建立控制器
php artisan make:controller PostController
1.3 建立檢視
在 /views 中建立 /post/create.blade.php 檔案,編寫如下:
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" > </head> <body> <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading"> 建立文章 </div> <div class="panel-body"> <form action="{{ url("/post") }}" method="POST" class="form-horizontal"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <div class="form-group"> <label class="col-md-4 control-label">標題</label> <div class="col-md-6"> <input type="text" class="form-control" name="title"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">內容</label> <div class="col-md-6"> <textarea rows="10" class="form-control" name="content"></textarea> </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <button class="btn btn-primary" type="submit">Submit</button> </div> </div> </form> </div> </div> </div> </div> </div> </body> </html>
1.4 在PostController中返回create檢視
public function create() { return view('post.create'); }
2 開始驗證
2.1 validate
我們在store方法中驗證表單提交過來的資料,語法是這樣的:
validate() 引數:
- request:傳入請求就好。
- rule:規則陣列,把我們的驗證邏輯寫在這裡面。
public function store(Request $request) { $this->validate($request,[ 'title' => 'required|min:3','content' => 'required|min:10',]); echo '驗證通過'; }
↑ 上面的例子如果驗證通過 則顯示"驗證通過" 如果驗證沒有通過的話Laravel會自動跳轉到表單提交頁面 並把錯誤資訊快閃記憶體到Session中,我們可以修改create.balde.php檔案 新增顯示錯誤程式碼
2.2 顯示錯誤資訊
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" > </head> <body> <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading"> 建立文章 </div> <div class="panel-body"> @if (count($errors) > 0) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <form action="{{ url("/post") }}" method="POST" class="form-horizontal"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> <div class="form-group"> <label class="col-md-4 control-label">標題</label> <div class="col-md-6"> <input type="text" class="form-control" name="title"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">內容</label> <div class="col-md-6"> <textarea rows="10" class="form-control" name="content"></textarea> </div> </div> <div class="form-group"> <div class="col-md-6 col-md-offset-4"> <button class="btn btn-primary" type="submit">Submit</button> </div> </div> </form> </div> </div> </div> </div> </div> </body> </html>
3 手動建立Validator
public function store(Request $request) { // $this->validate($request,[ // 'title' => 'required|min:3',// 'content' => 'required|min:10',// ]); $validator = Validator::make($request->all(),]); if ($validator->fails()) { return redirect('post/create') ->withErrors($validator) ->withInput(); } echo '驗證通過'; }
更多關於Laravel相關內容感興趣的讀者可檢視本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向物件程式設計入門教程》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧彙總》
希望本文所述對大家基於Laravel框架的PHP程式設計有所幫助。