Laravel 表單驗證及資料保持詳解

2021-09-18 04:03:22 字數 1733 閱讀 9148

控制器內容

if ($request->ismethod('post'))  else 

}return view('student.create');

如果控制器中**驗證通過了(validate),那麼會執行之後的**,如果沒有通過,框架會丟擲乙個異常,自動返回上乙個頁面;

錯誤資訊被存到session中了,並且將它繫結到檢視;

kernel.php

protected $middlewaregroups = [

'web' => [

\illuminate\cookie\middleware\addqueuedcookiestoresponse::class,

\illuminate\session\middleware\startsession::class,

// \illuminate\session\middleware\authenticatesession::class,

\illuminate\view\middleware\shareerrorsfromsession::class,//錯誤資訊在這裡被操作

\illuminate\routing\middleware\substitutebindings::class,

],

shareerrorsfromsession.php

public function handle($request, closure $next)

錯誤資訊被存到session中去了,這個error變數是全域性的,在**都可訪問到

檢視中迴圈輸出$error:

@if(count($errors))

@endif

$error的常用方法:

$error->first();	//輸出第乙個錯誤資訊

$error->all(); //輸出所有的錯誤資訊

總結控制器驗證流程:

控制器驗證,如果**驗證通過了,就繼續往下執行,如果沒通過,就會重定向到上乙個頁面,並且丟擲乙個異常,並把錯誤資訊儲存到session,這個錯誤資訊名為$errors,會被分配到檢視中,在檢視中,可以獲取這個變數,這個變數有一些方法,可以獲取錯誤資訊。

控制器中:

使用\validator::make建立驗證:

if ($request->ismethod('post')) 

$data = $request->input('student');

if (student::create($data)) else

}return view('student.create');

}

檢視中呼叫錯誤資訊

}

withinput() 預設將$request資料全部放進去

return redirect()->back()->witherrors($validator)->withinput();
檢視中呼叫$errors的old方法:

普通input框:value="}"

單選框:}

laravel表單驗證

效果展示 實現 後台 use validator php view plain copy print public function login 使用者驗證 user db table user select user id user encrypt user pwd where user name...

Laravel的表單驗證

修改密碼 如果要驗證的字段是password,輸入中必須存在匹配的password confirmation字段。驗證的字段值必須與引數欄位的值不同。public function rules 驗證陣列 通常我們的前端通常會寫成這個樣子 然後在後端可以通過多對多的關聯來實現這個新增標籤的功能,但是其...

Laravel使用記錄(十)表單驗證(三)

語言包 乙個表單我們可以這麼設定,兩個表單我們還能這麼設定,但是如果乙個專案十個八個表單,同樣的東西我們豈不是要設定幾百遍?難道沒有更加簡單的方法?答案是肯定的,有,使用語言包。語言包的位置在resources lang資料夾下,預設有乙個語言包en,我們可以看到en下面有四個檔案,分別是許可權 a...