当前位置: 首页 > 知识库问答 >
问题:

Laravel 8:如何在更新过程后重定向用户

乜裕
2023-03-14

我正在与Laravel8合作开发我的论坛项目,目前我已经制作了一个用户可以编辑答案的页面。表格如下:

   <form action="{{ route('update.answer', [$anss->id, $que->id]) }}" method="POST">
        @csrf
        <textarea name="answer" id="answer" class="form-control" rows="7">{{ $ans->answer }}</textarea>
        @error('answer')
            <div class="text-red-500 mt-2 text-sm">
                {{ $message }}
            </div>
        @enderror
        <button type="submit" class="text-blue-500 BJadidBold">Update</button>
    </form>

然后在控制器方法中,我添加了以下内容:

public function updateAnswer(Answer $anss, Question $que)
    {
        $validate_data = Validator::make(request()->all(),[
           'answer' => 'required'
        ])->validated();

        $answer = Answer::findOrFail($anss);
        $answer->update($validate_data);
    }

以下是实现这一目标的路线:

Route::post('questions/{anss}/{que}' , [QuestionController::class, 'updateAnswer'])->name('update.answer');

现在我想重定向用户到这样的网址:

http://localhost:8000/questions/question-slug-example

但是,通过此代码,用户将重定向到此url:

http://localhost:8000/questions/answer_id_example/question-slug-example

那么我如何才能做到这一点呢?

如果你能和我分享你的想法或建议,我将不胜感激...

谢谢

共有3个答案

郑茂勋
2023-03-14

完成更新过程后,可以使用此代码重定向用户。

return redirect('redirect url')
卫开济
2023-03-14

如果您的路由类型是get及其命名路由,那么您可以像这样重定向

return redirect()->route('route_name')->with(['data' => $data]);

如果您的路由类型为get,并且尚未指定路由的名称,则

return redirect('/any_route_url_defined_in_web.php')->with(['data' => $data]);
卞安邦
2023-03-14

不能重定向到POST类型路由。它必须是GET类型。要重定向,您可以使用:

return redirect('/questions/example/example');
 类似资料:
  • 我有一个servlet过滤器类。在doFilter函数中,我希望在chain.doFilter(请求,响应)调用之后重定向到一个自定义URL。

  • 这是我正在查看的代码片段: 根据迭代器无效规则: 向量:插入点之前的所有迭代器和引用不受影响,除非新容器大小大于以前的容量(在这种情况下,所有迭代器和引用都无效)[23.2.4.3/1]迭代器无效规则 我明白,由于我在每个插入操作中重新分配iter的值,也许我能够保持它的有效性(如果我错了,请纠正我)。然而,迭代器“中间”在这种情况下仍然有效,即使我没有在循环中篡改它,而且当向量的容量发生变化时也

  • 问题内容: 我正在使用maatwebsite / excel库创建excel文件,然后下载我的文件 在我的控制器中,我这样做: 这是我生成excel文件的功能: 但是在下载excel文件后,我无法重定向到路线或视图,并且我也尝试使用: 路线: 过滤: 但无论如何都没用,下载我的文件后还有另一种重定向的方式? 提前谢谢! 问题答案: 无法完成。问题是,如果您向用户浏览器发送下载指令,则实际上是在发送

  • 问题内容: 我正在尝试找到一种方法,可将请求从过滤器重定向到登录页面,但我不知道如何从servlet重定向。我搜索了,但发现的是方法。我在过滤器的响应对象上找不到此方法。是什么原因 我该如何解决? 问题答案: 在Filter中,响应是而不是。因此将强制转换为。 如果使用上下文路径: 也不要忘记在最后打电话。

  • 我想在成功登录后为特定页面重定向用户。 我不希望用户在登录后导航到上次查看的页面。 我试过以下网址,但它显示我的错误。 错误:

  • 更新:我试过那些设置,但它们也不起作用。