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

Laravel中如何在Deposits页面仅显示ID为3的计划?

只在Deposits页面显示ID为3的计划解决方案

嘿,这个需求很容易搞定,我给你两种常用的思路,优先推荐第一种,因为更符合MVC的设计原则:

方案1:在控制器层提前过滤数据(推荐)

视图的职责应该是只负责展示内容,数据过滤逻辑最好放在控制器或者模型里。你只需要修改控制器中传递数据的代码:

原来的控制器代码可能是这样的:

$plan = Plan::all(); // 获取所有计划
return view('deposits', compact('plan'));

改成下面这样,直接获取ID为3的单条计划:

// 方式1:通过find方法直接按ID查找
$plan = Plan::find(3);
// 方式2:用where条件过滤(更灵活,比如以后要改条件)
$plan = Plan::where('id', 3)->first();

return view('deposits', compact('plan'));

然后修改视图代码,因为现在$plan是单条数据,不需要foreach循环了:

<div class="row">
    <div class="col-sm-4 text-center">
        <div class="panel panel-info panel-pricing">
            <div class="panel-heading">
                <h3 style="font-size: 28px;"><b>{{ $plan->name }}</b></h3>
            </div>
            <div style="font-size: 18px;padding: 18px;" class="panel-body text-center">
                <p><!-- 这里保留你原来的内容,比如{{ $plan->price }}之类的 --></p>
            </div>
            <!-- 其他面板内容(比如按钮、详情描述)都直接用$plan->属性调用即可 -->
        </div>
    </div>
</div>

方案2:在视图层临时过滤(应急用,不推荐)

如果暂时不想修改控制器,也可以在视图的foreach循环里加一个判断条件,只渲染ID为3的计划:

<div class="row">
    @foreach($plan as $p)
        @if($p->id == 3) <!-- 只渲染ID为3的计划 -->
            <div class="col-sm-4 text-center">
                <div class="panel panel-info panel-pricing">
                    <div class="panel-heading">
                        <h3 style="font-size: 28px;"><b>{{ $p->name }}</b></h3>
                    </div>
                    <div style="font-size: 18px;padding: 18px;" class="panel-body text-center">
                        <p>...你原来的内容...</p>
                    </div>
                    <!-- 其他面板内容 -->
                </div>
            </div>
        @endif
    @endforeach
</div>

⚠️ 注意:这种方式不推荐,因为把业务逻辑混在视图里,后期维护起来会很麻烦,尽量用方案1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:31:33