laravel - 如何在 laravel 中使用增量函数
问题描述
我正在使用 DB 将值存储在数据库中。
我有“课程费用”列我要“增加”列中的“course_fees”值。
例如
DB::table('student')->where('registration_id','=', $request->registration_id)->increment(['course_fees' =>$request->course_fees]);
此代码增加插入的值
我如何修改下面的代码以增加“course_fees”值,如上
DB::table('student')->where('registration_id','=', $request->registration_id)->update(['payment_date' => $request->payment_date,'balance_fees' => $request->balance_fees,'course_fees' =>$request->course_fees]);
解决方案
您不能使用此方法来增加多个字段。您可以使用:
$studentQuery = DB::table('student')->where('registration_id','=', $request->registration_id);
(clone $studentQuery)->increment('payment_date',$request->payment_date);
(clone $studentQuery)->increment('balance_fees', $request->balance_fees);
(clone $studentQuery)->increment('course_fees', $request->course_fees);
但这样您将运行 3 个数据库查询来更新。
但是,如果您确定确实为 registration_id 找到了一条记录,您可以这样做:
$student = DB::table('student')->where('registration_id','=', $request->registration_id)->first();
$student->update([
'payment_date' => $student->payment_date + $request->payment_date,
'balance_fees' => $student->balance_fees + $request->balance_fees,
'course_fees' => $student->course_fees + $request->course_fees
]);
编辑
如果您只想增加course_fees
列并想从输入中更新其他 2 列,您可以使用:
DB::table('student')->where('registration_id','=', $request->registration_id)
->increment('course_fees' , $request->course_fees, [
'payment_date' => $request->payment_date,
'balance_fees' => $request->balance_fees
])
这是关于递增/递减方法的文档。
推荐阅读
- python - 使用交互式终端调试 Python
- xamarin - 如何从 Xamarin Forms 的页面中删除点击的事件?
- java - 在 android ndk 上从 C++ 调用 Java 方法
- c++ - 现代编译器在使用依赖注入时可以去虚拟化函数调用吗
- powerbi - 在 Power BI 中 - 对事务数据库中项目 A 比项目 B 更频繁的实例进行计数和求和
- sharepoint - SharePoint csom ADAL 令牌 401 未经授权
- c# - DataTable获取列值下一行的值
- php - 为什么这个 PHP 函数/MySQL 数据库会舍入十进制值?
- conda - 如何使用 conda MatchSpec?
- vue.js - 如何使用 moment.js 从 vuetify v-text-field (type:time) 格式化 v-model 数据?