如何在Laravel中验证Patch / Put请求

时间:2015-12-22 14:23:43

标签: laravel laravel-5

如何在Laravel中验证Patch / Put请求

根据Laravel文档http://laravel.com/docs/5.1/controllersput/patch请求由资源控制器的update操作处理

Verb         Path           Action  Route Name
PUT/PATCH   /photo/{photo}  update  photo.update

由于patch请求应更新部分资源,put请求更新整个资源,我的FormRequest验证rules应该如何:

我应该做这样的事情:

public function rules()
{

    $rules = [];

    if($this->has('name')) $rules['name'] = 'required';
    if($this->has('email')) $rules['email'] = 'required|email';

    return $rules;
}

依靠你的专业答案。

1 个答案:

答案 0 :(得分:0)

尝试覆盖getValidatorInstance

的默认FormRequest方法

我不尝试,但我认为它应该工作:) 希望主要思路清晰

 protected function getValidatorInstance()
    { 
        $validator =  \Validator::make($this->all(), $this->rules(),  $this->messages(), $this->attributes());
        $validator->sometimes('reason', 'required|max:500', function($input) {
           return $input->games >= 100;
        });

        return $validator;
    }