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

Laravel中Blade视图间传值报错求助:从order到receipt传变量失败

问题解决步骤

1. 修复order.blade.php的session调用错误

报错的直接原因是你在order视图中错误使用了$session['var']变量,Blade模板中不存在全局的$session变量,必须用Laravel提供的session()辅助函数获取session数据。

将order.blade.php中的代码:

<div class="modal-body">
     @include('orders.receipt', ['data' => $session['var']])                  
</div>

修改为:

<div class="modal-body">
     @include('orders.receipt', ['data' => session('var')])                  
</div>

2. 优化receipt.blade.php的变量使用

既然已经通过@include把data变量传递到receipt视图,直接使用传过来的$data比再次读取session更合理,也更符合视图传参逻辑:

将receipt.blade.php中的代码:

<td class="tableitem"><p class="itemtext">{{ session('var.1') }}</p></td>

修改为:

<td class="tableitem"><p class="itemtext">{{ $data['1'] }}</p></td>

若要访问第二个变量,对应写成{{ $data['2'] }}即可。

额外说明

控制器中Redirect::back()->with(...)的用法是正确的,它会将数据存入闪存session,这类数据会在下次请求后自动销毁。如果后续不需要视图间传参,也可以直接在receipt视图中保留session('var.1')的写法,此时order视图的@include无需传递data参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:55:43