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

Laravel 9 Blade下拉框无法正确回显历史选中值问题求助

问题解决:Laravel编辑页面下拉框无法回显选中值

你的问题出在Blade模板的选中判断逻辑错误,以下是修正方案:

错误原因

原代码中你错误地将old('company_id')和$employee->company_id做比较,这完全不符合需求——我们需要判断的是当前循环的公司ID是否等于用户之前选中的值(初始加载时是员工关联的公司ID,表单验证失败时是old()保存的提交值)。

修正后的Blade代码

方式一:手动判断

<select name="company_id" class="form-control">
    @foreach($companies as $company)
        <option value="{{ $company->id }}" {{ (old('company_id') ?: $employee->company_id) == $company->id ? 'selected' : '' }}>
            {{ $company->name }}
        </option>
    @endforeach
</select>

方式二:使用Laravel内置selected()辅助函数(更简洁)

<select name="company_id" class="form-control">
    @foreach($companies as $company)
        <option value="{{ $company->id }}" {{ selected(old('company_id', $employee->company_id), $company->id) }}>
            {{ $company->name }}
        </option>
    @endforeach
</select>

说明

  • old('company_id', $employee->company_id):优先使用表单提交失败后保留的company_id值,如果没有(即首次打开编辑页面),则使用员工关联的公司ID。
  • 两种方式都能正确实现:初始加载编辑页面时自动选中员工所属公司,表单验证失败时保留用户提交的选中值。

你的Controller和Model代码无需修改,表结构关联也正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:20:30