如果在laravel雄辩中请求变量为null,请不要更改mysql列值

时间:2018-09-16 09:25:45

标签: php mysql laravel orm eloquent

我需要检查$request->link_description is null是否不变,或者最好说不要触动数据库列值。

是否可以不进行额外的选择查询而这样做?

例如:

 /** update ad Seat info */
 $Update_Seat = AdSeat::where('id', $id)->where('owner_id', $owner_id)
 ->update(['seat_name' => $seat_name,
         'seat_url' => $seat_url,
         'logo_src' => ($logo_src) ? $logo_src : null,
         'category_id' => $category_id,
         'plan' => $plan,
         'price_sale' => $price_sale,
         'link_description' => ($link_description) ? $link_description : null,
         'description' => ($description) ? $description : null,
         'income_percentage' => $income_percentage,
         'status' => STATUS_TO_APPROVE]);

我的意思是这部分:

'link_description' => ($link_description) ? $link_description : null,

我想代替:{

null

但是正如我之前说过的那样,我正在寻找一种方法来避免像上面那样运行额外的选择查询。

1 个答案:

答案 0 :(得分:2)

事前构建数据数组会更容易。示例:

// Do not add $link_description here
$data = [
    'seat_url' => $seat_url,
    ...
];

// But add it if $link_description is not null
if (!is_null($link_description)) {
    $data['link_description'] = $link_description;
}

$Update_Seat = AdSeat::...->update($data);