可以在单个Request类中使用多个规则函数吗?

时间:2016-01-04 19:47:08

标签: php laravel laravel-5 laravel-validation laravel-5.2

我的请求类如下。

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'
        ];
    }
}

有规则功能。

在控制器中,有多种方法将Request作为参数。其中大多数在验证方面有所不同。我的意思是,如果我是管理员,我可以更新4个字段。如果我是经理,我可以更新3,如果我是普通用户,我可以更新2.因此验证将根据角色而变化。

可以在Request类中使用多个规则吗?

1 个答案:

答案 0 :(得分:0)

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

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

    return $rules;
}

当然,您需要在isAdmin模型中创建isManagerUser