Rumah >pembangunan bahagian belakang >tutorial php >Pengesahan bentuk dinamik di laravel dengan larangan_if

Pengesahan bentuk dinamik di laravel dengan larangan_if

James Robert Taylor
James Robert Taylorasal
2025-03-06 02:07:09823semak imbas

Dynamic Form Validation in Laravel with prohibited_if

Peraturan pengesahan Laravel

memudahkan pengendalian medan bentuk saling bergantung. Peraturan ini dengan elegan menyekat input medan berdasarkan nilai medan lain, meningkatkan pengesahan bentuk dinamik. prohibited_if

Memahami prohibited_if

Peraturan

memastikan medan tertentu tetap kosong jika keadaan dipenuhi. Ini amat berguna untuk bentuk dinamik dengan medan yang saling berkaitan. prohibited_if

Contoh:

use Illuminate\Support\Facades\Validator;

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

Permohonan dunia nyata: Pendaftaran Keahlian

Pertimbangkan sistem pendaftaran keahlian profesional:

<?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'
        ]);
    }
}
Contoh ini mempamerkan:

    Keperluan medan bersyarat berdasarkan
  • . membership_type
  • Pengesahan ID Cukai untuk Ahli Korporat AS sahaja.
  • jelas mesej ralat tersuai.
  • integrasi dengan peraturan pengesahan lain.

Memperluas dengan pelbagai syarat:

anda boleh menambah pelbagai syarat:

'business_license' => [
    Rule::prohibitedIf(fn() =>
        $request->membership_type === 'personal' ||
        !in_array($request->business_type, ['retail', 'franchise'])
    ),
    'required_if:business_type,retail,franchise',
    'string',
]

membolehkan logik pengesahan kompleks sambil mengekalkan kebolehbacaan kod. Ini memastikan borang anda menyesuaikan diri dengan konteks input pengguna dengan berkesan. prohibited_if

Atas ialah kandungan terperinci Pengesahan bentuk dinamik di laravel dengan larangan_if. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn