验证字段:required_if url 包含 Laravel 中的参数

问题描述 投票:0回答:3

当请求的url包含某些参数时,有什么方法可以验证必填字段吗?

php laravel validation rules laravel-validation
3个回答
3
投票

假设您正在使用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;
}

1
投票

在验证之前您需要先检查路线....

$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);

0
投票

如果您无论如何都想验证该字段,但不是按照要求,您可以使用

    public function rules(): array
    {
        return [
            'desc' => [
                Rule::requiredIf(fn() => !empty($this->route('parameter'))),
             ]
        ];
    }
© www.soinside.com 2019 - 2024. All rights reserved.