繁体   English   中英

Laravel 8:返回重定向()无法正常工作

[英]Laravel 8: return redirect() does not work properly

我正在使用 Laravel 8 创建一个论坛,基本上每当用户在此论坛上提出问题时,都应该将其重定向到该问题。

而且我还想根据问题的slug字段进行重定向过程。

所以为了做到这一点,我在postForm()方法的末尾添加了这个:

return redirect('questions/{slug}');

这是查看问题的途径:

Route::get('questions/{slug}', [QuestionController::class, 'showQuestion']);

然后我在 Controller 编码:

public function showQuestion($slug)
    {
        $show = Question::find($slug);

        if(is_null($show)){
            abort(404);
        }

        return view('questions.question',[
            'show' => $show
        ]);
    }

但现在的问题是,当我尝试添加新问题时,问题会成功添加,但会将我重定向到404页面。 并且 URL 重定向后也是这样的:

http://localhost:8000/questions/%7Bslug%7D

如您所见,未正确添加问题块!

那么这里出了什么问题? 如何通过每个问题的slug正确地将用户重定向到该路线?

如果你能帮我解决这个问题,我将不胜感激......

你需要改变:

return redirect('questions/{slug}');

return redirect('questions/' . $slug);

因为{parameter}是路由的方法,而不是 controller

将字符串中的变量括起来,仅适用于双引号。

你需要改变:

return redirect('questions/{slug}');

至:

return redirect("questions/{slug}");

暂无
暂无

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

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