Laravel 5.6 FormRequest验证

时间:2018-04-30 17:45:27

标签: validation laravel-5.6

我有一组要验证的输入字段。在验证发生之前,我删除了逗号(因为用户输入逗号为千位分隔符)。但它仍然抱怨这个数字不是数字。

class UpdateFamilyExpense extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function sanitize()
    {
        $attributes = $this->all();

        for ($i=1; $i<=15; $i++)
        {
            $attributes['e'.$i] = str_replace(',', '', $attributes['e'.$i]);
        }
        $this->replace($attributes);
    }

    public function rules()
    {
        $this->sanitize();

        return [
            'e1' =>    'required|numeric',
        ];
    }

    public function messages()
    {
        return [
            'e1.required' => 'required',
            'e1.numeric' =>  'must be a numeric',
        ];
    }
}

我无法弄清楚我错在哪里。有人能帮我弄清楚我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:0)

prepareForValidation覆盖为:

protected function prepareForValidation()
{
    $this->sanitize();
}