2016-10-24 3 views
3

음수가 나는 내가이 쿼리Laravel 감소 열 값 만

DB::table('users')->decrement('votes', 5); 

를 사용 laravel의 열 값을 줄일 수 있습니다 알고하지만 난 음의 값이 될되는 값을 제한 할.

laravel을 사용하여이 작업을 수행 할 수 있습니까?

+1

마이 그 레이션에서 투표 필드를 unsignedInteger, 즉 $ table-> unsignedInteger ('votes')로 선언하십시오. –

+0

답장을 보내 주신 @BalrajAllam에게 감사드립니다. 하지만 작은 질문이 있습니다. 위의 코드는이 경우 _false_를 반환 할 것입니까? – siddiq

+0

아니요, 투표 열에 음수 값만 허용하지 않습니다. –

답변

2

원시 쿼리를 사용해야합니다.

다음 코드가 지원하는 모든 DB 엔진에 대한 트릭을 할해야 GREATEST 기능 : 그것은 사용자 표 5에 투표를 열을 감소하지만, 아래 가지 않을 것이다

DB::table('users')->update(['votes' => DB::raw('GREATEST(votes - 5, 0)')]); 

제로 - 그게 뭔지 대단한 함수가 사용됩니다.