Rumah >pembangunan bahagian belakang >tutorial php >Pengesahan bentuk dinamik di laravel dengan larangan_if
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
memastikan medan tertentu tetap kosong jika keadaan dipenuhi. Ini amat berguna untuk bentuk dinamik dengan medan yang saling berkaitan. prohibited_if
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:
membership_type
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!