【问题标题】:redirect route for validation in laravel重定向路由以在 laravel 中进行验证
【发布时间】:2017-11-29 22:31:32
【问题描述】:

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

【问题讨论】:

  • 另外,指定您使用的 Laravel 版本并应用适当的标签会很有帮助

标签: php laravel-5 laravel-5.4


【解决方案1】:

请看这里: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.

【讨论】:

  • 我尝试了 $redirectRoute 属性,但它不起作用。我会尝试自定义请求。非常感谢:)
【解决方案2】:

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

总结:

use Illuminate\Validation\ValidationException;

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

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 2016-06-02
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2016-09-01
    • 2016-09-15
    相关资源
    最近更新 更多