首頁 > 後端開發 > php教程 > laravel的動態形式驗證

laravel的動態形式驗證

James Robert Taylor
發布: 2025-03-06 02:07:09
原創
822 人瀏覽過

Dynamic Form Validation in Laravel with prohibited_if

laravel'sprohibited_if驗證規則簡化了處理相互依賴的表單字段。 該規則根據其他字段的值優雅地限制了字段輸入,增強了動態形式驗證。

理解prohibited_if

>規則確保如果滿足條件,則確保特定字段保持空。這對於具有互連字段的動態形式特別有用。 prohibited_if>

>示例:

use Illuminate\Support\Facades\Validator;

$validator = Validator::make($request->all(), [
    'freelance_company' => 'prohibited_if:type,individual',
    'type' => 'required|in:individual,business'
]);
登入後複製

現實世界應用程序:會員註冊>

考慮專業會員註冊系統:

<?php namespace App\Http\Controllers;

use App\Models\Membership;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;

class MembershipController extends Controller
{
    public function store(Request $request)
    {
        $request->validate([
            'membership_type' => 'required|in:personal,corporate',
            'full_name' => 'required|string|max:255',
            'organization_name' => [
                'prohibited_if:membership_type,personal',
                'required_if:membership_type,corporate',
                'string',
                'max:255',
            ],
            'organization_size' => [
                'prohibited_if:membership_type,personal',
                'required_if:membership_type,corporate',
                'integer',
                'min:1',
            ],
            'tax_id' => [
                Rule::prohibitedIf(fn() =>
                    $request->membership_type === 'personal' ||
                    $request->country !== 'US'
                ),
                'string',
                'size:9',
            ],
        ], [
            'organization_name.prohibited_if' => 'Organization details are unnecessary for personal memberships.',
            'tax_id.prohibited_if' => 'Tax ID is only needed for US-based corporate memberships.',
        ]);
        Membership::create($request->validated());
        return response()->json([
            'message' => 'Membership created successfully'
        ]);
    }
}
登入後複製
這個示例顯示:

    >基於
  • 的條件字段要求。 membership_type
  • >僅針對美國公司成員的稅務ID驗證。
  • 清除自定義錯誤消息。
  • 與其他驗證規則集成。
  • 在多個條件下延伸:

>

您可以添加多個條件:

在維護代碼可讀性的同時,
'business_license' => [
    Rule::prohibitedIf(fn() =>
        $request->membership_type === 'personal' ||
        !in_array($request->business_type, ['retail', 'franchise'])
    ),
    'required_if:business_type,retail,franchise',
    'string',
]
登入後複製

允許進行複雜的驗證邏輯。 這樣可以確保您的表格有效地適應用戶輸入上下文。 prohibited_if

以上是laravel的動態形式驗證的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板