繁体   English   中英

重定向路由以在 Laravel 中进行验证

[英]redirect route for validation in laravel

我在 Laravel 中的 redirectRoute 属性有问题。 我想要做的是:在请求验证后,例如注册请求失败,重定向到具有正确错误的另一个视图。 我已经尝试过在 RegisterController 中使用protected $redirectRoute = '/route-name'但它不起作用。 我正在使用 Laravel 5.4

请参见此处: https//laravel.com/docs/5.4/validation#manually-creating-validators

您需要手动创建验证器,然后如果验证失败,您可以确切地告诉它重定向到哪里:

    $validator = Validator::make($request->all(), [
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);

    if ($validator->fails()) {
        return redirect('post/create')
                    ->withErrors($validator)
                    ->withInput();
    }

如果您使用的是表单请求,则可以覆盖以下属性以重定向到自定义位置:

protected $redirect; // A simple URL. ex: google.com
protected $redirectRoute; // A route name to redirect to.
protected $redirectAction; // A controller action to redirect to.

更新的答案,在 Laravel 8 中测试过。可以创建一个 ValidationException 并在其上设置自定义重定向。

概括:

use Illuminate\Validation\ValidationException;

$validator->setException( (new ValidationException($validator))->redirectTo('your/custom/location'));
$validator->validate(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM