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

Laravel中如何用数据库数组值填充HTML下拉选择框?

解决方法

第一步:修正控制器代码

你当前用get()返回的是包含单个模型的集合,改用first()可以直接获取到id=12的单个Product实例,更便于后续处理:

public function index(){
   $product = Product::where('id', 12)->first();
   return view('product_details', compact('product'));
}

第二步:在视图中生成下拉选择框

根据你的colours列存储格式,分两种情况处理:

情况1:已在模型中配置自动转换数组

如果你的Product模型已经通过$casts将colours列自动转为数组(推荐做法):
在Product模型文件中添加:

protected $casts = [
    'colours' => 'array',
];

此时视图可直接循环数组生成选项:

<select name="colour">
    @if($product && $product->colours)
        @foreach($product->colours as $colour)
            <option value="{{ $colour }}">{{ $colour }}</option>
        @endforeach
    @endif
</select>

情况2:colours列存储为JSON字符串

如果未配置模型转换,需要先在视图中将JSON字符串解码为数组:

<select name="colour">
    @if($product && $product->colours)
        @php
            $colours = json_decode($product->colours, true);
        @endphp
        @foreach($colours as $colour)
            <option value="{{ $colour }}">{{ $colour }}</option>
        @endforeach
    @endif
</select>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 20:49:53