php - 如果请求变量在 laravel eloquent 中为空,请不要更改 mysql 列值
问题描述
我需要检查是否$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
我想放一些类似的东西:
'link_description' => ($link_description) ? $link_description : AdSeat::whereId(5)->value('link_description),
但正如我之前所说,我正在寻找一种不运行上述额外选择查询的方法。
解决方案
事先构建数据数组会更容易。例子:
// 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);
推荐阅读
- java - 类路径顺序更改时无法启动主类
- r - 使用 st_distance 计算到特定点的最近距离
- python - 使用python从模块调用主文件中的内部函数
- python - 如何比较两个数据框并使用新值进行更新
- flutter - ExpansionTile 溢出
- ffmpeg - ffmpeg - 在组合多个图像和音轨时对输入图像应用填充
- oracle-apex - 如何在 Oracle Apex 交互式报表的行中添加更新按钮?
- java - 将 UTC 日期转换为给定时区时的值错误
- c# - ASP.net Core - JsonProperty NullValueHandling.Ignore 不适用于可空类型
- java - Java Applet 有危险吗?