질문을 삭제하지 말아주세요.!
 
1
0
-1

migration 파일을 생성하고

php artisan migrate 를 하게 되면 자동적으로 created_at 과 update_at 컬럼이 생성이 되더라구요

created_at과 updated_at 말고 제가 다른 컬럼을 지정해서 사용하고 싶은데

설정하는 방법이 따로 있나요?

    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      우선 생성되는 기본 타임테이블은 

      마이그레이션 (/database/migrations/{해당 클래스}) 에 들어가보시면

      $table->timestamps();

      이란게 있는데 그게 해당 컬럼입니다. 그것을 없애시면 생성이 되지 않습니다.


      또한 추가로 데이터가 생성될때마다 자동으로 채워지는 이 기능을 끄기 위해선

      해당 모델에 가셔서


      public $timestamps = false;

      을 추가하시면 됩니다. (참고: https://laravel.kr/docs/5.4/eloquent 타임스탬프 부분)


      다른 컬럼으로 변경을 원하신다고 하셨는데..

      그것 또한 똑같이 해당 모델에 가셔서

      const CREATED_AT = 'creation_date';
      const UPDATED_AT = 'last_update';

      작성하시면 됩니다. (참고: https://laravel.kr/docs/5.4/eloquent 타임스탬프 부분 바로 아랫부분)

      1. lzao

        답변 감사합니다.

        migration 파일을 만들고 $table→timestamps('reg_time'); 이런식으로 정의하면

        reg_time이란 컬럼으로 date가 만들어지는게 아니라 created_at과 update_at 컬럼이 만들어지던데 이런식으로는 제가 원하는 방향으로 만들어지지 않나요?

        model 파일을 만들기 전에 php artisan migrate를 합니다.

      2. 안유성

        사실 해본적은 없지만 제가 그냥 생각하기로는

        $table->timestampls('reg_time');

        이 아니라


        $table→date('reg_time'); 나

        $table→dateTime('reg_time'); 으로 만드셔야할것같네요.

      3. Junewon Park

        제 생각에는 Migration에서 Create 시 또는 Update 시에 사용될 필드를 아래 와 같이 생성하시고,

        $this->timestamp('reg_time')->nullable(); // 생성 시간 저장용
        $this->timestamp('up_time')->nullable(); // 변경 시간 저장용

        Modeld에서 안유성 님이 설명하신 데로 설정 하시면 될듯.

        const CREATED_AT = 'reg_time';
        const UPDATED_AT = 'up_time';

        Laravel 소스만 보고 답변하는 것이라 검증이 필요합니다.

        해보시고 코멘트 주시면 감사하겠습니다.

      CommentAdd your comment...