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

Laravel 5.8下拉筛选器失效求助:仅调用数据库第一行数据

解决下拉框仅显示数据库第一行数据的问题

嘿,我来帮你搞定这个下拉框只加载第一条数据的问题!咱们一步步排查:

1. 先确认控制器传递的$data是否包含所有数据

这是最常见的原因——如果你的控制器里用了first()而不是get()/all(),那$data就只会是单条记录,循环自然只跑一次。

比如检查控制器代码:

// ❌ 错误写法:只获取第一条数据
$data = Category::first();

// ✅ 正确写法:获取所有数据
$data = Category::all();
// 或者
$data = Category::get();

如果需要对Umur字段去重(避免下拉框出现重复选项),可以加上distinct():

$data = Category::distinct('Umur')->get();

2. 修正Blade循环的语法错误

你的代码里@foreach($data as $category){多了个多余的大括号{,Blade的循环语法不需要这个符号,这会导致循环逻辑异常,可能只渲染了第一个选项。

修正后的Blade代码:

<div class="col-md-2">
    <div class="text-justify">
        <select class="itemName form-control form-filter" style="width:90px;" name="itemName" id="itemName">
            @foreach($data as $category)
                <option value="{{ $category->Umur }}">{{ $category->Umur }}</option>
            @endforeach
        </select>
    </div>
</div>

3. 验证数据库中的数据

最后检查下数据库里的Umur字段是不是有多条不同的值,如果所有记录的Umur都一样,浏览器会自动合并重复的下拉选项,看起来就像只显示了一条。这种情况就用上面提到的distinct()来处理。

你可以先在模板里临时加一行{{ dd($data) }},看看$data到底有多少条数据,这样能快速定位问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:39:18