source

열 증분(라벨

myloves 2023. 9. 5. 21:42

열 증분(라벨

라벨에서 둘 이상의 열을 증가시키는 방법이 있습니까?

예를 들어,

DB::table('my_table')
->where('rowID', 1)
->increment('column1', 2)
->increment('column2', 10)
->increment('column3', 13)
->increment('column4', 5);

그러나 결과는 다음과 같습니다.

Call to a member function increment() on integer

저는 단지 라벨에서 주어진 함수를 사용하여 이것을 하는 효율적인 방법을 찾고 싶습니다.감사해요.어떤 제안이든 좋습니다.

이 작업을 수행할 기존 기능이 없습니다.사용해야 합니다.update():

DB::table('my_table')
   ->where('rowID', 1)
   ->update([
       'column1' => DB::raw('column1 + 2'),
       'column2' => DB::raw('column2 + 10'),
       'column3' => DB::raw('column3 + 13'),
       'column4' => DB::raw('column4 + 5'),
   ]);

라라벨 웅변모형의 증가와 감소

카트에 추가 옵션은 전자 상거래 웹 사이트에서 가장 중요한 기능 중 하나입니다.까다로운 부분은 카트 아이콘에 표시할 카트의 항목 수를 가져오는 것입니다.이 작업을 수행하기 위한 주요 접근 방식은 Laravel에서 증분 및 감소 함수를 사용하는 것입니다.또한 카트에서 제품을 쉽게 추가하거나 제거할 수 있습니다.이 기능을 구현하는 방법은,

$user = User::find(‘517c43667db388101e00000f’);
$user->cart_count++;
// $user->cart_count--; // for decrement the count
$user->save()

대안이자 쉬운 방법은

$user = User::find($article_id);
$user->increment('cart_count');

또한 다음과 같이 작동합니다.

$user->increment('cart_count');// increase one count
$user->decrement('cart_count'); // decrease one count
$user->increment('cart_count',10); // increase 10 count
$user->decrement('cart_count',10); // decrease 10 count

이제 Larvel 5.7 Larvel 쿼리 작성기에서 증분감소를 쉽게 수행할 수 있습니다.

Model::where('id', "rowID")->increment('columne1');` 

또는 DB를 사용할 수 있습니다.

DB::table("my_table")->where('id', "rowID")->increment('column1');

5.2에서 향후 참조를 위해 다음을 수행함으로써 가능하게 되었습니다.

작업 중에 업데이트할 추가 열을 지정할 수도 있습니다.

DB::table('users')->increment('votes', 1, ['name' => 'John']);

출처: https://laravel.com/docs/5.2/queries#updates

우선, 결과는increment설명서에 따르면 은 정수입니다. http://laravel.com/api/4.2/Illuminate/Database/Query/Builder.html

따라서 각 증분에 대해 호출을 수행해야 합니다.

DB::table('my_table')
->where('rowID', 1)
->increment('column1', 2);
DB::table('my_table')
->where('rowID', 1)
->increment('column2', 10);
DB::table('my_table')
->where('rowID', 1)
->increment('column3', 13);
DB::table('my_table')
->where('rowID', 1)
->increment('column4', 5);

원시 업데이트 쿼리 명령으로 해결하지 않는 한 더 빠른 해결책을 찾을 수 없습니다.

또한 다음으로 문을 닫았기 때문에 예제 코드가 오류를 생성할 수 있습니다.;그리고 새로운 것을 계속합니다.->increment다음 전화로 전화하세요.

$id=5;
$votes=20;
DB::table('users')
   ->where('id', $id)
   ->update([
       'votes' => DB::raw('votes + '.$votes)
]);

그냥 이 코드를 사용하세요.

\App\Models\User::find(1)->increment('column1');  //id = 1

또는 다중 기록

\App\Models\User::where('column1','>','100')->increment('column1');

최신 버전의 9.x에서는 다음을 사용하여 여러 열을 증분 및 감소시킬 수 있습니다.incrementEach그리고.decrementEach메서드:

DB::table('users')->incrementEach([
    'votes' => 5,
    'balance' => 100,
]);

(문서에 나와 있음)

Model::where('id', "rowID")->increment('columne1');

이것은 나에게 효과가 있습니다.

언급URL : https://stackoverflow.com/questions/29816123/increment-columns-in-laravel