当请求的url包含某些参数时,有什么方法可以验证必填字段吗?
假设您正在使用Form requsts,您可以简单地使用PHP条件。
public function rules()
{
$rules = []; // here you put some rules
// here you check condition and add some rule when it's true
if (str_contains($this->input('url'), 'something')) {
$rules['some_other_field'] = 'required';
}
return $rules;
}
在验证之前您需要先检查路线....
$roles =[
'title' => 'required|unique:posts|max:255',
'author.name' => 'required',
'author.description' => 'required',
];
if(Route::getCurrentRoute()->getPath() == "xxxxx"){
$role['desc'] = 'required'
}
if(\Request::route()->getName() == "yyyy"){
$role['desc'] = 'required'
}
if($request->is('admin/*')){
$role['desc'] = 'required'
}
$this->validate($request, $role);
如果您无论如何都想验证该字段,但不是按照要求,您可以使用
public function rules(): array
{
return [
'desc' => [
Rule::requiredIf(fn() => !empty($this->route('parameter'))),
]
];
}