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

Laravel视图正确展示数组问题:PaymentController传值后渲染异常

嘿,我看到你的问题了,先给你揪出一个最明显的小错误——你的控制器里有个变量拼写失误!

第一步:修正控制器的拼写错误

看这段代码:

return view('posts.registration')->with('selectedTypes', $selectedTtypes);

你把$selectedTypes写成了$selectedTtypes(多了一个t),这会直接导致视图接收不到这个变量,这大概率是你现在无法正常展示内容的核心原因。修正后的控制器代码应该是:

class PaymentController extends Controller {
    public function storeQuantity(Request $request){
        $selectedTypes = $request->type;
        // 这里修正了变量名的拼写错误
        return view('posts.registration')->with('selectedTypes', $selectedTypes);
    }
}
第二步:根据票种数据结构编写视图代码

接下来要看前端传给你的$request->type是什么结构,我给你两种常见情况的解决方案:

情况1:票种名称为键,数量为值(比如['vip' => 2, 'standard' => 3])

如果是这种结构,你的registration.blade.php可以这么写:

<div class="card_body">
    {{-- 先判断是否有选中的票种 --}}
    @if($selectedTypes && count($selectedTypes) > 0)
        <h3>已选票种明细</h3>
        <ul class="ticket-list">
            @foreach($selectedTypes as $ticketName => $quantity)
                <li>
                    <strong>{{ $ticketName }}</strong>: {{ $quantity }} 张
                </li>
            @endforeach
        </ul>
    @else
        <p>暂未选择任何票种</p>
    @endif
</div>

情况2:票种是包含名称和数量的数组/对象(比如[['name' => 'vip', 'quantity' => 2], ...])

如果前端传的是这种结构,视图代码要调整成这样:

<div class="card_body">
    @if($selectedTypes && count($selectedTypes) > 0)
        <h3>已选票种明细</h3>
        <ul class="ticket-list">
            @foreach($selectedTypes as $ticket)
                <li>
                    <strong>{{ $ticket['name'] }}</strong>: {{ $ticket['quantity'] }} 张
                </li>
            @endforeach
        </ul>
    @else
        <p>暂未选择任何票种</p>
    @endif
</div>
额外调试技巧

如果你不确定$selectedTypes的具体结构,可以在控制器里加一行dd($selectedTypes);,请求后就能看到数据的具体格式,方便你调整视图代码。另外也可以在视图里先写{{ dd($selectedTypes) }},确认变量是否成功传递到视图中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:12:04