验证之后和发送给控制器之前,修改请求数据

时间:2019-06-03 07:36:39

标签: laravel laravel-5 request

我正在使用Laravel的FormRequest进行验证,以使我的代码在控制器中更干净,并且在验证之后,我想添加一些要请求的数据,然后将其保存。因此,我只是在寻找一种解决方案,因此我不必在控制器中添加数据以进行请求。如果仅在同一文件中进行验证之后,可能会有用于修改数据并将其发送到控制器的额外功能。会更好。

1 个答案:

答案 0 :(得分:1)

如果您希望对请求进行验证后再做一些事情,可以按照apokryfos的建议使用After Validation Hook

但是我认为将这个钩子放入您的FormRequest后代类中会更方便一些。

祖先:

use Illuminate\Foundation\Http\FormRequest;

class AncestorRequest extends FormRequest
{
    ...

    protected function getValidatorInstance()
    {
        return parent::getValidatorInstance()->after(function ($validator) {
            $this->after($validator);
        });
    }

    protected function after($validator)
    {
        //
    }
}

后代:

class DescendantRequest extends AncestorRequest
{
    ...

    public function after($validator)
    {
        // do your things
    }
}

P。 S.我在Laravel 5.2中使用的解决方案。 Here,您可以找到更多选项。