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

Dynamische Formvalidierung in Laravel mit verbotenem_if

James Robert Taylor
Freigeben: 2025-03-06 02:07:09
Original
822 Leute haben es durchsucht

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'
]);
Nach dem Login kopieren

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'
        ]);
    }
}
Nach dem Login kopieren

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',
]
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage