Heim >Backend-Entwicklung >PHP-Tutorial >Dynamische Formvalidierung in Laravel mit verbotenem_if

Dynamische Formvalidierung in Laravel mit verbotenem_if

James Robert Taylor
James Robert TaylorOriginal
2025-03-06 02:07:09823Durchsuche

Dynamic Form Validation in Laravel with prohibited_if

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:

  • Bedingte Feldanforderungen basierend auf membership_type.
  • Steuer -ID -Validierung nur für US -Unternehmensmitglieder.
  • benutzerdefinierte Fehlermeldungen löschen.
  • Integration in andere Validierungsregeln.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn