열 증분(라벨
라벨에서 둘 이상의 열을 증가시키는 방법이 있습니까?
예를 들어,
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
'source' 카테고리의 다른 글
| 여러 테이블이 있는 다중 내부 조인 (0) | 2023.09.05 |
|---|---|
| Oracle ORA-12154: TNS: 서비스 이름 오류를 확인할 수 없습니까? (0) | 2023.09.05 |
| label updateOrCreate 메서드 (0) | 2023.09.05 |
| .NET의 app.config 또는 web.config에서 설정 읽기 (0) | 2023.05.28 |
| EDMX 모델에서 특정 테이블을 신속하게 찾는 방법은 무엇입니까? (0) | 2023.05.28 |