當前位置: 首頁> 最新文章列表> Laravel表單驗證詳解:unique唯一性、confirmed確認密碼與安全密碼修改

Laravel表單驗證詳解:unique唯一性、confirmed確認密碼與安全密碼修改

gitbox 2025-08-08

Laravel unique唯一性驗證

在Laravel開發中,表單數據驗證是必不可少的一環,其中常見需求之一是確保數據庫中某字段的值是唯一的。 Laravel提供了unique驗證規則來快速實現這一功能。

unique規則的基本用法

當需要驗證某個字段的唯一性時,可以直接在驗證規則中加入unique ,例如:

 $request->validate([
   'email' => 'unique:users',
]);

該規則會檢查users表中email列的值是否已存在,如果重複將返回驗證錯誤。

排除當前記錄

在更新用戶信息時,可能需要允許保留原有的郵箱地址。這時可以通過在unique規則中加入當前記錄的ID來排除自己:

 $request->validate([
   'email' => 'unique:users,email,' . $user->id,
]);

這樣驗證會忽略ID為$user->id的記錄,僅對其他記錄進行唯一性檢查。

Laravel confirmed確認密碼驗證

在註冊或修改密碼的場景中,通常會要求用戶輸入兩遍密碼以確保輸入正確。 Laravel提供了confirmed規則來簡化這一需求。

confirmed規則用法

只需在字段驗證規則中添加confirmed即可,例如:

 $request->validate([
   'password' => 'required|confirmed',
]);

該規則會自動檢查password字段與password_confirmation字段的值是否一致,不一致時會提示錯誤。

Laravel密碼修改功能驗證

在實現密碼修改功能時,除了驗證新密碼外,還需要確保用戶輸入的舊密碼正確,並對新密碼做安全性限制。

密碼修改常用驗證規則

一個較為完整的密碼修改驗證示例如下:

 $request->validate([
   'old_password' => 'required',
   'new_password' => 'required|min:8|different:old_password',
   'confirm_password' => 'required|same:new_password',
]);

其中:

  • old_password :驗證用戶是否輸入舊密碼。
  • new_password :新密碼必須至少8位且與舊密碼不同。
  • confirm_password :確認密碼必須與新密碼一致。

通過以上規則,可以有效提升密碼修改過程的安全性,並減少用戶誤操作。