Laravel形式驗證教程
Laravel 表單驗證可通過控制器中的validate() 方法實現,1. 使用validate() 定義規則如required、email、unique 等確保數據合規;2. 可在validate() 中傳入第二個參數自定義錯誤消息,或在lang/zh-CN/validation.php 中設置全局中文提示;3. 在Blade 模板中使用@error 指令顯示錯誤信息,並用old() 保留輸入值;4. 高級技巧包括:a) 使用sometimes 實現條件驗證,b) 通過users.*.name 語法驗證數組字段,c) 創建表單請求類(php artisan make:request)分離複雜驗證邏輯;5. 常見規則有required、string、numeric、array、confirmed、unique、exists、min、max、regex 和nullable。完整流程確保數據安全且用戶體驗良好,最終實現開箱即用的可靠表單處理。
Laravel 的表單驗證功能強大又靈活,能幫你輕鬆確保用戶提交的數據符合預期。下面是一個實用的Laravel 表單驗證教程,適合初學者和想鞏固基礎的人。

1. 基礎表單驗證(使用控制器驗證)
最常見的驗證方式是在控制器中使用validate()
方法。假設你有一個用戶註冊表單,需要驗證姓名、郵箱和密碼。
// 在你的控制器中public function store(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:8|confirmed', ]); // 驗證通過後,保存用戶User::create($validated); return redirect()->route('users.index')->with('success', '用戶創建成功!'); }
說明:

-
required
:字段必須存在且不為空。 -
string
:必須是字符串。 -
max:255
:最長255 字符。 -
email
:必須是合法郵箱格式。 -
unique:users
:在users 表中唯一。 -
min:8
:密碼最少8 位。 -
confirmed
:必須有一個對應的password_confirmation
字段,且值相同。
如果驗證失敗,Laravel 會自動重定向回上一頁,並將錯誤信息存入session。
2. 自定義錯誤提示消息
默認的錯誤消息是英文的,你可以自定義更友好的提示:

$validated = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:8|confirmed', ], [ 'name.required' => '姓名不能為空', 'email.email' => '請輸入有效的郵箱地址', 'password.min' => '密碼至少需要8 個字符', 'password.confirmed' => '兩次輸入的密碼不一致', ]);
你也可以在lang/zh-CN/validation.php
中設置全局中文提示,讓整個項目統一。
3. 在Blade 模板中顯示錯誤信息
在視圖中,使用$errors
變量顯示驗證失敗信息:
<!-- resources/views/users/create.blade.php --> <form method="POST" action="{{ route('users.store') }}"> @csrf <div> <label>姓名</label> <input type="text" name="name" value="{{ old('name') }}"> @error('name') <span style="color: red;">{{ $message }}</span> @enderror </div> <div> <label>郵箱</label> <input type="email" name="email" value="{{ old('email') }}"> @error('email') <span style="color: red;">{{ $message }}</span> @enderror </div> <div> <label>密碼</label> <input type="password" name="password"> @error('password') <span style="color: red;">{{ $message }}</span> @enderror </div> <div> <label>確認密碼</label> <input type="password" name="password_confirmation"> </div> <button type="submit">提交</button> </form>
-
@error('field')
會檢查該字段是否有錯誤。 -
old('name')
保留用戶輸入,避免表單重填。
4. 高級驗證技巧
a) 條件驗證(有時需要,有時不需要)
使用sometimes
規則:
$request->validate([ 'phone' => 'sometimes|required|numeric', ]);
只有當phone
字段存在時才驗證。
b) 驗證數組字段
比如批量添加用戶:
$request->validate([ 'users.*.name' => 'required|string', 'users.*.email' => 'required|email', ]);
c) 使用表單請求類(Form Request)——適合複雜驗證
生成一個專門的請求類:
php artisan make:request StoreUserRequest
編輯生成的app/Http/Requests/StoreUserRequest.php
:
public function rules() { return [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:8|confirmed', ]; } public function messages() { return [ 'name.required' => '姓名必填', 'email.unique' => '該郵箱已被註冊', ]; }
在控制器中使用:
public function store(StoreUserRequest $request) { User::create($request->validated()); return redirect()->route('users.index'); }
這種方式更清晰,尤其適合大型項目。
5. 常見驗證規則速查
規則 | 說明 |
---|---|
required |
必填 |
email |
合法郵箱格式 |
string |
字符串 |
numeric |
數字 |
array |
數組 |
confirmed |
需要xxx_confirmation 字段 |
unique:table,column |
數據庫唯一(默認檢查同名字段) |
exists:table,column
|
值必須存在於數據庫中 |
min:8 |
最小長度/數值 |
max:255 |
最大長度/數值 |
regex:/pattern |
正則匹配 |
nullable |
允許為空(常配合其他規則) |
基本上就這些。 Laravel 的驗證機制開箱即用,結合validate()
、自定義消息和Blade 錯誤展示,能快速實現安全可靠的表單處理。不復雜,但容易忽略細節,比如confirmed
需要對應字段, unique
要注意更新時忽略當前用戶等。
以上是Laravel形式驗證教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

在Laravel中添加自定義驗證規則的方法有三種:使用閉包、Rule類和表單請求。 1.使用閉包適合輕量級驗證,如阻止用戶名為"admin";2.創建Rule類(如ValidUsernameRule)使復雜邏輯更清晰可維護;3.在表單請求中整合多個規則並集中管理驗證邏輯,同時可通過自定義messages方法或傳入錯誤信息數組來設置提示語,從而提升靈活性和可維護性。

Laravel應用實現多語言支持的核心方法包括:設置語言文件、動態切換語言、翻譯URL路由及管理Blade模板中的翻譯鍵。首先,將各語言字符串組織在/resources/lang目錄下的對應文件夾(如en、es、fr)中,並通過返回關聯數組定義翻譯內容;2.通過\_\_()輔助函數調用翻譯鍵值,並使用App::setLocale()結合會話或路由參數實現語言切換;3.對於翻譯URL,可通過帶前綴的路由組分別為不同語言定義路徑,或動態映射語言文件中的路由別名;4.在Blade模板中保持翻譯鍵簡潔並

toworkeffectivelywithpivottablesinlaravel,firstAccessPivotDatausingwithPivot()orwithTimestamps(),thenupdateentrieswithupdatee XistingPivot(),ManageraliationShipsviadeTach()andsync(),andusecustompivotModelSwhenNeed.1.UseWithPivot()toincludespecificcol

laravelProvidesLeanAndFlexibleWayTosendificationsViamultiplipliplipliplikeMail,SMS,In-Appalerts,and-Appalerts,andPushNotifications.youdefineNotificationChannelsinthelsinthevia()MethodofanotificationClass,andimpecificementpecificementpecificementpecificemmethodssliketomail()

ServiceProvider是Laravel框架中用於註冊服務和初始化邏輯的核心機制,通過Artisan命令可創建自定義ServiceProvider;1.register方法用於綁定服務、註冊單例、設置別名等操作,不可調用尚未加載的其他服務;2.boot方法在所有服務註冊完成後運行,用於註冊事件監聽器、視圖合成器、中間件等依賴其他服務的邏輯;常見用途包括綁定接口與實現、註冊Facade、加載配置、註冊命令行指令和視圖組件;建議集中相關綁定於一個ServiceProvider中管理,並註意註冊

在Laravel應用中處理異常和記錄錯誤的核心方法包括:1.利用App\Exceptions\Handler類集中管理未處理異常,通過report()方法記錄或通知異常信息,例如發送Slack通知;2.使用Monolog配置日誌系統,在config/logging.php中設置日誌級別與輸出方式,並在生產環境中啟用error及以上級別日誌,同時可在report()中結合上下文手動記錄詳細異常信息;3.自定義render()方法以返回統一的JSON格式錯誤響應,提升API前後端協作效率。這些步驟確

Laravel性能優化可通過四個核心方向提升應用效率。 1.使用緩存機制減少重複查詢,通過Cache::remember()等方法存儲不常變化的數據,降低數據庫訪問頻率;2.從模型到查詢語句進行數據庫優化,避免N 1查詢、指定字段查詢、添加索引、分頁處理及讀寫分離,減少瓶頸;3.將耗時操作如郵件發送、文件導出放入隊列異步處理,利用Supervisor管理工作者並設置重試機制;4.合理使用中間件與服務提供者,避免複雜邏輯和不必要的初始化代碼,延遲加載服務以提升啟動效率。

依賴注入在Laravel中通過服務容器自動處理類的依賴關係,無需手動new對象。其核心是構造函數注入和方法注入,如控制器中自動傳入Request實例。 Laravel通過類型提示解析依賴,遞歸創建所需對象。綁定接口與實現可通過服務提供者使用bind方法,或singleton綁定單例。使用時需確保類型提示、避免構造函數複雜化、謹慎使用上下文綁定,並理解自動解析規則。掌握這些可提升代碼靈活性與維護性。
