laravel'sprohibited_if
验证规则简化了处理相互依赖的表单字段。 该规则根据其他字段的值优雅地限制了字段输入,增强了动态形式验证。
理解prohibited_if
>规则确保如果满足条件,则确保特定字段保持空。这对于具有互连字段的动态形式特别有用。prohibited_if
>
use Illuminate\Support\Facades\Validator; $validator = Validator::make($request->all(), [ 'freelance_company' => 'prohibited_if:type,individual', 'type' => 'required|in:individual,business' ]);
现实世界应用程序:会员注册>
考虑专业会员注册系统:
<?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' ]); } }这个示例显示:
membership_type
>
您可以添加多个条件:在维护代码可读性的同时,
'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
以上是laravel的动态形式验证的详细内容。更多信息请关注PHP中文网其他相关文章!