Laravel redirect()-> send()不会完全停止应用程序

问题描述 投票:0回答:1

我可能会完全错误地认为,但我的印象是redirect()->send()会强制应用停止并重定向用户。事实证明,它确实可以做到,但不是全部。

假设我们具有以下功能。

function validate()
{
    $validator = ... // a working implementation

    if ($validator->fails()) {
        redirect()->back()->withErrors($validator)->withInput()->with(['_type' => $type])->send();
    }
}

可以在执行请求期间调用此函数。如果成功,则什么也不会发生。

示例用例是这样:

function something(Request $request)
{
    $this->validate();
    \Log::debug('Running like a mad man!');
}

如果validate()没有失败,则应记录一条调试消息。如果确实失败,我们希望它重定向。

我们当然可以在something()中添加逻辑,但我们不愿意。

在我们的情况下,Log::debug始终运行。起初我以为它只发生在Laravel 5.8中,但是显然我们在旧版本中也遇到了这个问题。

重定向后,您不能使用die()或类似的命令,因为它会返回419。我不熟悉Laravel内部原理,但我想它没有机会设置会话。

这是我们无需在something()中添加逻辑就可以解决的问题吗?

php laravel laravel-5 laravel-5.8 laravel-response
1个回答
0
投票

您应该return redirect()->back()...

© www.soinside.com 2019 - 2024. All rights reserved.