Laravel使用QueryBuilder更新多个列

问题描述 投票:2回答:4

我正在使用查询构建器,我成功更新了第一列但是在第二个查询中没有发生更改,我已经检查了视图部分输入的名称及其正确。这是我的代码。

  DB::table('area')
        ->where('id', $request->get('area_id'))
        ->update(['island_group_id' => $request->get('island_group_id')],
                 ['region_id'       => $request->get('region_id')]);
        return 'test';
laravel laravel-5.4
4个回答
5
投票
$updateDetails = [
    'island_group_id' => $request->get('island_group_id'),
    'region_id' => $request->get('region_id')
];

DB::table('area')
    ->where('id', $request->get('area_id'))
    ->update($updateDetails);

5
投票
DB::table('area')
    ->where('id', $request->get('area_id'))
    ->update([
             'island_group_id' => $request->get('island_group_id'),
             'region_id'       => $request->get('region_id')
            ]);
    return 'test';

2
投票

我认为这对你有所帮助。

$area_id = $request->get('area_id');
$island_group_id = $request->get('island_group_id'); 
$region_id = $request->get('region_id');

$update_details = array(
    'island_group_id' => $island_group_id
    'region_id'       => $region_id
);

DB::table('area')
    ->where('id', $area_id)
    ->update($update_details);

1
投票

因为您每次都使用新数组进行更新字段。请使用一个数组来更新多个字段,如:

DB::table('area')
        ->where('id', $request->get('area_id'))
        ->update(array(
                  'island_group_id'=>$request->get('island_group_id'),
                  'region_id'=>$request->get('region_id')
         ));
© www.soinside.com 2019 - 2024. All rights reserved.