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
>
您可以添加多個條件:在維護代碼可讀性的同時,
'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中文網其他相關文章!