如何在 laravel 中使用增量函数
how to use increment function in laravel
我正在使用 DB 在数据库中存储值。
我有 "course fees" 列我要 "increment" 列中的 "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
])
increment()
/decrement()
可以带3个参数:$column, $amount, $extra
.
$column
是你要增加的字段
$amount
是您希望将字段增加多少
$extra
是您还想在查询中更新的属性数组。
如果您不传递金额,$amount
的默认值为 1。
要实现您的目标,您可以做:
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,
]);
我正在使用 DB 在数据库中存储值。
我有 "course fees" 列我要 "increment" 列中的 "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
])
increment()
/decrement()
可以带3个参数:$column, $amount, $extra
.
$column
是你要增加的字段
$amount
是您希望将字段增加多少
$extra
是您还想在查询中更新的属性数组。
如果您不传递金额,$amount
的默认值为 1。
要实现您的目标,您可以做:
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,
]);