验证失败但已重定向到控制器层

时间:2016-03-04 02:50:04

标签: laravel

我尝试验证输入,但输入错误时不显示错误并重定向到另一个url.My代码是这样的:

$rules = [
            'point' => 'required|numeric|min:0|max:10',
            'id_tieuchi' => 'required|numeric|min:1'
        ];

 foreach ($data as $value)
        {
            $validator = Validator::make( $value, $rules);
        }

我也在foreach中使用语法但没有工作,因为控制器无法理解基本网址user中的../evaluate/$user/edit

if ($validator->fails())
                return  redirect('evaluate/{user}/edit')->withInput()->with('message',$validator->messages()->all());

1 个答案:

答案 0 :(得分:2)

Laravel附带了将为您处理此逻辑的请求。您可以像这样利用它们:

在App \ Http \ Requests中,创建一个FooRequest.php并将此代码添加到其中:

<?php

namespace App\Http\Requests;

class FooRequest extends Request
{
/**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'point'      => 'required|numeric|min:0|max:10',
            'id_tieuchi' => 'required|numeric|min:1'
        ];
    }
}

在你的FooController.php中,请务必将其添加到文件的顶部:

use App\Http\Requests\FooRequest;

然后在你的控制器方法中,使用FooRequest:

public function bar(FooRequest $request)
{
    // Do stuff here...
}

FooRequest将验证您发送到bar方法的任何输入。如果存在验证错误,它将自动重定向回到您来自验证器中的错误的任何页面。如果验证通过,它将在$ request中使用请求中的项目输入bar方法。

有关详情,请参阅validation in Laravel