programing

Laravel의 created_at 및 updated_at 이름 변경

goodsources 2022. 11. 20. 12:22
반응형

Laravel의 created_at 및 updated_at 이름 변경

Laravel의 타임스탬프를 매핑할 수 있습니까?

created_at로.post_date그리고.post_date_gmt?

updated_at로.post_modified그리고.post_modified_gmt?


워드프레스 애플리케이션을 라라벨로 옮기고 있어요

라라벨을 이용해서 워드프레스 데이터베이스 복사본에 접속하고 있어요데이터베이스의 라이브 버전이 아직 사용 중이므로 스키마를 변경하지 않습니다.

[ Posts ]테이블에는post_date,post_date_gmt,post_modified그리고.post_modified_gmt하지만 라라벨은 기대하고 있다.created_at그리고.updated_at.

라라벨이 찾는 칼럼 이름을 바꿀 방법이 있나요?

라라벨이 이미 있는 모든 열의 타임스탬프를 업데이트했으면 합니다.

받아들여진 답변으로 인해 타임스탬프 갱신에 문제가 발생할 수 있습니다.

모델의 Const를 덮어쓰는 것이 좋습니다.

const CREATED_AT = 'post_date';
const UPDATED_AT = 'post_modified';

그 후 방법getCreatedAtColumn그리고.getUpdatedAtColumn돌아온다post_date그리고.post_modified하지만 해를 끼치진 않을 겁니다

다른 열에서는 @Oni가 제안하는 이벤트를 사용해야 합니다.

의 출처를 조사하면,Eloquent학급

https://github.com/illuminate/database/blob/4.2/Eloquent/Model.php#L223-L235

이러한 상수를 재정의하면 이러한 열 이름을 쉽게 변경할 수 있습니다.

<?php

class YourModel extends Eloquent {

    /**
     * The name of the "created at" column.
     *
     * @var string
     */
    const CREATED_AT = 'post_date';

    /**
     * The name of the "updated at" column.
     *
     * @var string
     */
    const UPDATED_AT = 'post_modified';

}

에 대해서는_gmt이 타임스탬프 버전에서는events여기서부터 좋은 출발이다.

http://driesvints.com/blog/using-laravel-4-model-events

이걸 테이블 모델 파일에 넣기만 하면 돼

 const CREATED_AT = 'your_custom_created_at_field_name';
 const UPDATED_AT = 'your_custom_updated_at_field_name';

내 모델은 혼동을 피하기 위해 이렇게 생겼다.

class diarymodule extends Model
{
    protected $table = 'diarymodule';
    const CREATED_AT = 'CreatedDate';
    const UPDATED_AT = 'UpdatedDate';
}

getters 및 getters 속성을 사용해 볼 수 있습니다.

class Post extends Eloquent
{
    public function getCreatedAtAttribute()
    {
        return $this->attributes['post_date'];
    }

    public function setCreatedAtAttribute($value)
    {
        $this->attributes['post_date'] = $value;

        // this may not work, depends if it's a Carbon instance, and may also break the above - you may have to clone the instance
        $this->attributes['post_date_gmt'] = $value->setTimezone('UTC');
    }
}

이게 효과가 있을지는 모르겠지만 한번 시도해 보세요.확실히 근거지가 될 것이다.그것을 가지고 놀아야 할 것이다.

언급URL : https://stackoverflow.com/questions/24404474/change-name-of-laravels-created-at-and-updated-at

반응형