Laravels prohibited_if
Validierungsregel vereinfacht die Handhabung von Interdependent -Formfeldern. Diese Regel schränkt die Feldeingaben elegant auf basierend auf den Werten anderer Felder und verbessert die Validierung der dynamischen Form.
Verständnis prohibited_if
Die prohibited_if
-Regel stellt sicher, dass spezifische Felder leer bleiben, wenn eine Bedingung erfüllt ist. Dies ist besonders nützlich für dynamische Formen mit miteinander verbundenen Feldern.
Beispiel:
use Illuminate\Support\Facades\Validator; $validator = Validator::make($request->all(), [ 'freelance_company' => 'prohibited_if:type,individual', 'type' => 'required|in:individual,business' ]);
realweltliche Anwendung: Mitgliedsregistrierung
Betrachten Sie ein professionelles Registrierungssystem für Mitgliedschaft:
<?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' ]); } }
Dieses Beispiel zeigt:
membership_type
. sich mit mehreren Bedingungen ausdehnen:
Sie können mehrere Bedingungen hinzufügen:
'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
ermöglicht eine komplexe Validierungslogik bei der Aufrechterhaltung der Code -Lesbarkeit. Dies stellt sicher, dass sich Ihre Formulare effektiv an den Kontext der Benutzereingabe anpassen.
Das obige ist der detaillierte Inhalt vonDynamische Formvalidierung in Laravel mit verbotenem_if. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!