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

Laravel 8如何通过with()方法向Blade模板传递数组并成功访问?

Laravel 8 重定向后Blade读取闪存数组的正确方法

问题原因

你用redirect()->back()->with()传递的数据属于session闪存数据,不会直接作为全局变量挂载到Blade视图,需要从session中读取;另外你直接传递数组到with()的写法会将数组拆分为多个独立键值对存入闪存,不会生成datainsert这个集合键。


方案1:保留原控制器传参写法的读取方式

你当前的with($datainsert)写法等效于分别存储website和name两个独立的闪存项,Blade中直接读取对应键即可:

{{ session('name') }}
{{ session('website') }}
{{-- 成功提示也用相同逻辑读取 --}}
{{ session('success') }}

方案2:按原需求传递整个datainsert数组

如果要把整个数组作为一个集合传递,先修正控制器的传参写法,给数组指定键名:

return redirect()->back()
            ->with('success', 'Successfully Inserted')
            ->with('datainsert', $datainsert); // 给数组指定键名

Blade中读取逻辑如下,建议先做存在性判断避免报错:

@if(session()->has('datainsert'))
    <p>用户名:{{ session('datainsert.name') }}</p>
    <p>站点地址:{{ session('datainsert.website') }}</p>
@endif

{{-- 也可以用数组语法访问 --}}
{{ session('datainsert')['name'] }}

补充说明

重定向时通过with()传递的所有数据都属于一次性session闪存,仅在下一次请求有效,访问完成后会自动销毁,完全适配当前操作后返回提示的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:09:01