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

Laravel Blade中两个Select2输入框旧值设置问题:第一个正常渲染,第二个无法显示旧值

问题诊断与解决方案

嘿,我来帮你梳理下问题根源和解决办法:

1. 核心问题拆解

你遇到的问题主要来自三个细节错误:

  • 第二个下拉框的旧值引用错了字段名
  • 后端请求参数的重复键导致值被覆盖
  • 错误提示的字段名不匹配对应组件

2. 分步修正方案

(1)修正表单组件的旧值与错误提示

第二个select组件的字段名是council_parent_id,但你用了parent_id来获取旧值和错误信息,导致内容为空。同时Laravel的Form::select不需要单独写value属性,第三个参数就是默认/旧值的位置。

修正后的表单代码:

<div class="form-group parent_id">
    {{ Form::label('parent_id', 'اختر اللجنة الرئيسية', ['class' => 'control-label']) }}
    {{ Form::select('parent_id', $parents, \Input::old('parent_id') , ['placeholder' => '','class' => 'form-control parent_id select2d']) }}
    <span class="text-danger">{{ $errors->first('parent_id') }}</span>
</div>
<div class="form-group council_parent_id">
    {{ Form::label('council_parent_id', 'اختر المجلس الرئيسي', ['class' => 'control-label']) }}
    {{ Form::select('council_parent_id', $council_parents, \Input::old('council_parent_id', $mainCouncil) , ['placeholder' => '','class' => 'form-control council_parent_id select2']) }}
    <span class="text-danger">{{ $errors->first('council_parent_id') }}</span>
</div>

这里的关键调整:

  • 把旧值获取改为\Input::old('council_parent_id', $mainCouncil),同时把$mainCouncil作为默认值传入
  • 错误提示改为$errors->first('council_parent_id'),匹配组件对应的字段名
  • 移除无效的value属性,让Form::select自己处理默认值逻辑

(2)修复后端更新方法的重复键问题

你代码里的请求参数数组有重复的parent_id键,PHP中重复键会被后面的值直接覆盖,导致$request->council_parent_id的值完全丢失,后端根本拿不到第二个选择框的内容。

修正后的后端代码示例:

// 错误写法(重复键被覆盖)
// ['parent_id' => $request->council_parent_id, 'parent_id' => $request->parent_id]

// 正确写法(用对应字段名存储)
[
    'parent_id' => $request->parent_id,
    'council_parent_id' => $request->council_parent_id,
    // 其他需要更新的字段...
]

完成以上调整后,第二个下拉框就能正常显示旧值,后端也能正确接收两个字段的内容,错误提示也会对应生效啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:27:28