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

cngwdvgl  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(284)

我需要检查一下 $request->link_description is null 然后不要更改任何内容或者更好地说不要接触数据库列值。
是否可以在不执行额外的select查询的情况下执行此操作?
例如:

/**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 我想说的是:

'link_description' => ($link_description) ? $link_description : AdSeat::whereId(5)->value('link_description),

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

mklgxw1f

mklgxw1f1#

这将更容易建立您的数据数组之前,手。例子:

// 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);

相关问题