是否可以在单个请求 class 中使用多个规则?

Is that possible to have multiple rules function in single Request class?

我有如下请求class。

class CategoryRequest extends Request
{
    public function response(array $errors){
        return \Redirect::back()->withErrors($errors)->withInput();
    }

    public function authorize()
    {
        return false;
    }

    public function rules()
    {
        return [
            'Category' => 'required|unique:tblcategory|max:25|min:5'
        ];
    }
}

有规则功能。

在控制器中,有多个方法将请求作为参数。他们中的大多数在验证观点上有所不同。我的意思是,如果我是管理员,。我可以更新 4 个字段。如果我是经理,我可以更新 3,如果我是普通用户,我可以更新 2。所以验证会根据角色而改变。

是否可以在请求中使用多个规则功能 class?

你可以在这里使用任何你想要的条件,所以你可以这样做:

public function rules()
{
    $rules = [];
    if (Auth::user()->isAdmin()) {
       $rules['Category'] = '...';
    } 
    elseif (Auth::user()->isManager()) {
       $rules['Category'] = '...';
    }        

    return $rules;
}

当然,您需要在 User 模型中创建 isAdminisManager