You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9中如何通过redirect()->route()传递多个数据参数?

在Laravel的redirect()->route()中传递布尔参数的方法

方法一:通过路由参数传递(需修改路由定义)

  1. 先修改web.php中的路由,添加可选的布尔参数(?表示参数可选):
Route::get('student/evaluation/{evaluation}/{questionWasCompleted?}', [EvaluationController::class, 'getEvaluationQuestions'])
    ->middleware('auth')
    ->name('student.questionsevaluation');
  1. 在控制器的重定向逻辑中,传递包含两个参数的数组:
if($questionWasCompleted){
    return redirect()->route('student.questionsevaluation', [
        'evaluation' => $evaluation,
        'questionWasCompleted' => $questionWasCompleted
    ])->with('message', 'Question answered.');
}
  1. 在目标控制器方法中,可以直接接收这个参数:
public function getEvaluationQuestions(Evaluation $evaluation, ?bool $questionWasCompleted = null)
{
    // 在这里使用$questionWasCompleted参数
}

方法二:通过查询字符串传递(无需修改路由)

如果不想改动现有路由结构,可以把参数作为查询字符串附加到URL上,直接在重定向的参数数组中添加键值对即可:

if($questionWasCompleted){
    return redirect()->route('student.questionsevaluation', [
        'evaluation' => $evaluation,
        'questionWasCompleted' => $questionWasCompleted
    ])->with('message', 'Question answered.');
}

生成的URL会类似student/evaluation/1?questionWasCompleted=1,在目标方法中通过请求实例获取该参数:

public function getEvaluationQuestions(Evaluation $evaluation)
{
    $questionWasCompleted = request()->query('questionWasCompleted', false);
    // 在这里使用参数
}

内容的提问来源于stack exchange,提问作者Jefferson Farid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 04:45:33