在 Laravel 中,表單驗證可以通過多種方式實現(xiàn)。這里將介紹兩種常見的方法:使用控制器進行驗證和使用表單請求類進行驗證。
首先,在你的控制器中添加一個用于處理表單提交的方法。例如,我們創(chuàng)建一個 store
方法來處理表單提交:
use Illuminate\Http\Request;
class YourController extends Controller
{
public function store(Request $request)
{
// 驗證邏輯
}
}
接下來,在 store
方法中添加表單驗證邏輯。使用 $request->validate()
方法進行驗證,并定義一個包含驗證規(guī)則的數(shù)組作為參數(shù):
public function store(Request $request)
{
$validatedData = $request->validate([
'field1' => 'required|max:255',
'field2' => 'required|integer|min:1',
// 更多驗證規(guī)則...
]);
// 保存數(shù)據(jù)、處理業(yè)務(wù)邏輯...
}
首先,使用以下命令生成一個新的表單請求類:
php artisan make:request YourFormRequest
這將在 app/Http/Requests
目錄下生成一個名為 YourFormRequest.php
的文件。
接下來,打開 YourFormRequest.php
文件,定義你的驗證規(guī)則:
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class YourFormRequest extends FormRequest
{
public function authorize()
{
return true; // 根據(jù)需要判斷用戶是否有權(quán)進行此操作
}
public function rules()
{
return [
'field1' => 'required|max:255',
'field2' => 'required|integer|min:1',
// 更多驗證規(guī)則...
];
}
}
然后,在控制器中引入表單請求類,并將其作為 store
方法的參數(shù)類型提示:
use App\Http\Requests\YourFormRequest;
class YourController extends Controller
{
public function store(YourFormRequest $request)
{
// 保存數(shù)據(jù)、處理業(yè)務(wù)邏輯...
}
}
現(xiàn)在,當(dāng)表單提交時,Laravel 會自動對請求數(shù)據(jù)進行驗證。如果驗證失敗,將自動重定向回表單頁面,并顯示錯誤消息。如果驗證成功,將繼續(xù)執(zhí)行 store
方法中的代碼。
注意:在視圖中,你可以使用 @error
指令顯示錯誤消息,例如:
@error('field1')
<div class="alert alert-danger">{{ $message }}</div>
@enderror