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

Laravel重定向报错:RedirectResponse参数类型错误求助

问题解决思路

1. 错误根源

你遇到的RedirectResponse参数错误,是因为redirect()函数的第二个参数要求是整数类型的HTTP状态码(比如默认的302),但你传了数组['projects' => $projects],类型不匹配导致报错。

2. 核心问题:重定向 vs 返回视图

你同学能正常运行,大概率是直接返回视图而非重定向——重定向是发起一个新的HTTP请求,无法直接把数据传递到目标页面;而返回视图是直接渲染当前请求的页面,可以直接传数据。

解决方案一:直接返回视图(推荐,适合展示场景)

修改控制器代码,把redirect换成view,直接传递数据到blade页面:

public function show(): View
{
    $projects = Project::all(); // 注意模型类名首字母大写,符合PSR规范

    return view('list', ['projects' => $projects]);
}

解决方案二:必须重定向时的传参方式

如果业务逻辑确实需要重定向(比如表单提交后跳转),需要通过Session闪存数据传递,使用->with()方法:

public function show(): RedirectResponse
{
    $projects = Project::all();

    return redirect('list')->with('projects', $projects);
}

此时目标页面需要从Session中取出数据:

@if(session('projects'))
    @foreach(session('projects') as $project)
        {{-- 你的展示代码 --}}
    @endforeach
@endif

3. 额外修正:Blade循环变量错误

你的目标页面循环写反了,@foreach($project as $projects)会导致变量混乱,应该改成:

@foreach($projects as $project)
    <h2>{{ $project->title }}</h2>
    <p>{{ $project->picture_url }}</p>
    <p>{{ $project->description }}</p>
    <p>{{ $project->explanation }}</p>
    <button> Edit </button>
    <button> Delete </button>
@endforeach

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:32:06