首页 > 解决方案 > Laravel - 如何更新两个值

问题描述

我想更新我的数据中的两个值我想将第一个值更新为 int,另一个是字符串。

表结构

在此处输入图像描述

这是我的输入,值aircraft_id是第一个要更新的值,另一个是aircraft_refistration_number

 <select name="aircraft_id" class="form-control" id="">
    <option value="0" disabled="true" selected="true"> Select </option>
       @foreach ($aircrafts as $aircraft)

    <option value="{{ $aircraft->aircraft_id }}">{{ $aircraft->aircraft_registration_number }}</option>

       @endforeach
  </select>

这是我的桌子

在此处输入图像描述

这是我更新registered_company_name必须是字符串的地方,但输出是aircraft_id

$txtDescript = $request->input('aircraft_id');

  $aircraft = DB::table('settings')
  ->where('id', 4)
  ->update(['description' => $txtDescript]);

这是aircraft_id应该是 int 或 id 的

  $airid = $request->input('aircraft_id');

    $aircraft = DB::table('series')
    ->update(['aircraft_id' => $airid]);

这个完美的作品

这是我的问题输出

在此处输入图像描述

WHEREAS它应该像这个输出,应该是正确的

在此处输入图像描述

标签: phpsqllaravellaravel-5

解决方案


你可以采取这种更长的形式,

 <select name="aircraft_id" class="form-control" id="">
    <option value="0" disabled="true" selected="true" id="airselect"> Select </option>
       @foreach ($aircrafts as $aircraft)

    <option value="{{ $aircraft->aircraft_id }}">{{ $aircraft->aircraft_registration_number }}</option>
       @endforeach
  </select>
<input type="hidden" name="aircraft_name" id="aircraft_name" value="">

并像这样使用jquery设置隐藏字段的值

$(document).ready(function(){
$(document).on('change','.airselect',function(){
$selected=$( "#airselect option:selected" ).text();
$('#aircraft_name').val($selected);
});
});

然后像这样调整你的控制器

$txtDescript = $request->input('aircraft_name');
$aircraft = DB::table('settings')
  ->where('id', 4)
  ->update(['
description' => $txtDescript]);

$airid = $request->input('aircraft_id');

$aircraft = DB::table('series')
->update(['aircraft_id' => $airid]);

试试看,让我从你这里,我没有测试代码


推荐阅读