Laravel表单验证失败自定义重定向

根据learnku的Laravel文档显示:
如果想手动创建验证器实例,又想利用请求中 validates 方法提供的自动重定向,那么你可以在现有的验证器实例上调用 validate 方法。如果验证失败,用户会自动重定向,如果是 AJAX 请求,将会返回 JSON 格式的响应:

也就是说,默认Laravel会自动重定向到一个合适的地址。

// 自动重定向
Validator::make($request->all(), [
    'title' => 'required|unique:posts|max:255',
    'body' => 'required',
])->validate();

那么我们怎么自定义重定向地址呢?

1.控制器中:

$validator = Validator::make(...);
if ($validator->fails()) {
    // 自定义验证失败后重定向的地址
    return redirect('member/gasup');
}

2.验证类中

<?php
namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class orderRequest extends FormRequest
{
    // 自定义验证失败后重定向的地址
    protected  $redirect = 'member/gasup';

    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        ...
    }

    public function messages()
    {
        ...
    }
}
posted @ 2021-07-09 22:56  luyuqiang  阅读(352)  评论(0编辑  收藏  举报