Laravel:如果更新时字段保持不变,则具有数据库中当前值的下拉字段返回 NULL

问题描述 投票:0回答:1

我有一个 Laravel 项目,您可以在其中捕获表单上的“操作员”信息 1 字段,该字段是一个包含 3 个选项的下拉列表。捕获效果完美。然后我可以选择编辑操作员信息。我使用一个表单来显示数据库中的当前信息,所有信息都显示完美,下拉列表显示当前值,但是如果我只想更改“名称”,而不触及其他任何内容,它会说下拉列表为空,因此,如果我尝试编辑,但这次我更改名称并重新选择相同的当前下拉值,则它可以工作。我是否正确使用表格?

这是编辑表单中的下拉字段

<div class="mb-3">
  <label for="exampleFormControlSelect1" class="form-label">
Operator Licence Status</label>
<select name="ol" class="form-select" id="exampleFormControlSelect1">
    <option selected="" disabled="">{{ $types->ol }}</option>
    <option>Available</option>
    <option>Applied</option>
    <option>None</option>
</select>
</div>

这是用于更新的控制器功能

 public function UpdateOperator(Request $request){
        $pid = $request->id;

         
        Operator::findOrFail($pid)->update([
            'name' => $request->name,
            'id_num' => $request->id_num,
            'address' => $request->address,
            'phone' => $request->phone,
            'email' => $request->email,
            'ol' => $request->ol,
            'ol_number' => $request->ol_number,
            'fees_paid' => $request->fees_paid,
       
            
        ]);

        $notification = array(
            'message' => 'Taxi Operator Updated Successfully',
            'aler-type' => 'success'
        );
        return redirect()->route('view.operator')->with($notification);


    }

如果我选择下拉值,它会起作用并更新数据库

php laravel-blade
1个回答
0
投票

问题似乎与您在编辑表单中处理下拉值的方式有关。下拉列表中所选的选项应与数据库中的当前值匹配,以便在更新时无缝运行。目前,您使用的选项没有 value 属性,这可能会导致问题。

<div class="mb-3">
<label for="exampleFormControlSelect1" class="form-label">Operator Licence Status</label>
<select name="ol" class="form-select" id="exampleFormControlSelect1">
    <option value="Available" {{ $types->ol === 'Available' ? 'selected' : '' }}>Available</option>
    <option value="Applied" {{ $types->ol === 'Applied' ? 'selected' : '' }}>Applied</option>
    <option value="None" {{ $types->ol === 'None' ? 'selected' : '' }}>None</option>
</select>
© www.soinside.com 2019 - 2024. All rights reserved.