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

Validate a field: required_if the url contains parameter in Laravel

当请求的 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);