Confluence 에 심각한 보안 취약점이 발견되었으니 사용자분들은 업그레이드 하세요.!
 
1
0
-1

eloquent모델을 업데이트 할때 save나 update를 쓰는데 변경사항이 없을때는 아예 DB에 기록을 안하더라구요.

업데이트 액션을 취했다는 정보를 남기고 싶다면 upated_at에 무조건 새로운 값을 할당하거나 touch함수를 써야되는데 touch는 쿼리가 한번 더 날아가서 무조건 쓰긴 좀 그렇더라구요. 

혹시 더 좋은 방법이 있을까요?

    CommentAdd your comment...

    3 answers

    1.  
      1
      0
      -1

      찾아보니 한때 업데이트할 내용이 없는데도 save()를 하면 updated_at이 갱신되었는데, 이를 버그로 여겨서 고쳤었네요.

      https://github.com/laravel/framework/issues/790

      별도의 쿼리가 발생하지 않으려면 직접 updated_at에 값을 넣는 수 밖에 없지 않을까 싶네요.

        CommentAdd your comment...
      1.  
        1
        0
        -1

        답변들 감사합니다.

          CommentAdd your comment...
        1.  
          1
          0
          -1

          $model->updated_at = Carbon::now(); 를 넣어주는 식으로 해결이 가능할듯 합니다.

          내용을 보니 어떤 컬럼도 업데이트 하지 않고 DB가 아닌 다른곳에 업데이트를 로깅하고 싶으신건가요??

            CommentAdd your comment...