기본적으로 Laravel Eloquent 모델 기본 데이터 테이블에는created_at 및update_at라는 두 개의 필드가 있습니다. 물론, 우리는 많은 사용자 정의 구성을 만들고 많은 흥미로운 기능을 구현할 수 있습니다. 다음은 몇 가지 예입니다.
1. 타임스탬프 비활성화
데이터 테이블에 Model::create($arrayOfValues); 두 필드가 없으면 데이터를 저장할 때 SQL 오류가 표시됩니다. Laravel은 Created_at/update_at를 자동으로 채울 때 이 두 필드를 찾을 수 없습니다.
타임스탬프 자동 채우기를 비활성화하려면 Eloquent 모델에 이전 속성을 추가하세요:
class Role extends Model { public $timestamps = FALSE; // ... 其他的属性和方法 }
2. 타임스탬프의 기본 목록을 수정하세요
현재 Laravel 유형이 아닌 데이터베이스를 사용하고 있다면 타임스탬프 열 이름 지정 방법이 다른 경우 어떻게 해야 합니까? 아마도 각각 create_time 및 update_time이라고 합니다. 축하합니다. 모델에서 다음과 같이 정의할 수도 있습니다:
class Role extends Model { const CREATED_AT = 'create_time'; const UPDATED_AT = 'update_time';
3. 타임스탬프 날짜/시간 형식 수정
다음 내용은 공식 Laravel 문서를 참조합니다.
기본적으로 타임스탬프는 다음과 같은 형식으로 자동 지정됩니다. 'Y-m-d H:i:s'. 사용자 정의 타임스탬프 형식이 필요한 경우 모델에서 $dateFormat 속성을 설정할 수 있습니다. 이 속성은 날짜가 데이터베이스에 저장되는 형식과 배열 또는 JSON으로 직렬화될 때의 형식을 결정합니다.
class Flight extends Model { /** * 日期时间的存储格式 * * @var string */ protected $dateFormat = 'U'; }
4 다대다: 타임스탬프가 있는 중간 테이블
다대일 경우 대다 연관, 사용자 테이블 사용자와 역할 테이블 역할 사이의 중간 테이블 role_user와 같이 타임스탬프는 자동으로 채워지지 않습니다.
이 모델에서는 다음과 같이 관계를 정의할 수 있습니다.
class User extends Model { public function roles() { return $this->belongsToMany(Role::class); } }
그런 다음 사용자에게 역할을 추가하려는 경우 다음과 같이 사용할 수 있습니다.
$roleID = 1; $user->roles()->attach($roleID);
기본적으로 이 중간 테이블에는 타임스탬프가 포함되지 않습니다. 그리고 Laravel은 Created_at/updated_at
을 자동으로 채우려고 시도하지 않지만 타임스탬프를 자동으로 저장하려면 마이그레이션 파일에 Create_at/updated_at를 추가한 다음 모델의 ->withTimestamps();
public function roles() { return $this->belongsToMany(Role::class)->withTimestamps(); }
를 추가해야 합니다. 연관 5. 타임스탬프 정렬을 위해 최신() 및 가장 오래된() 사용
타임스탬프 정렬을 사용하는 데는 두 가지 "단축 방법"이 있습니다.
대신:
User::orderBy('created_at', 'desc')->get();
이렇게 하는 것이 더 빠릅니다.
User::latest()->get();
기본적으로 최신()은 Created_at 정렬을 사용합니다.
따라서, selected_at 오름차순으로 정렬되는 maximum()이 있습니다.
User::oldest()->get();
물론, 지정된 다른 필드를 기준으로 정렬할 수도 있습니다. 예를 들어,update_at를 사용하려면 다음과 같이 할 수 있습니다:
$lastUpdatedUser = User::latest('updated_at')->first();
6.update_at
수정을 트리거하지 마세요. Eloquent 레코드가 수정될 때마다 update_at 필드는 현재 타임스탬프를 사용하여 자동으로 유지됩니다. 이것은 매우 멋진 기능입니다.
그러나 때로는 이 작업을 수행하고 싶지 않을 수도 있습니다. 예를 들어 특정 값을 추가할 때 이것이 "전체 행 업데이트"가 아니라고 생각합니다.
따라서 위와 같이 모든 작업을 수행할 수 있습니다. 타임스탬프를 비활성화하기만 하면 됩니다. 임시적인 것임을 기억하세요.
$user = User::find(1); $user->profile_views_count = 123; $user->timestamps = false; $user->save();
7. 타임스탬프와 관련 타임스탬프만 업데이트하세요
정확히 이전 예와 반대입니다. 다른 열을 변경하지 않고 update_at 필드.
그래서 다음과 같은 작성 방법은 권장되지 않습니다.
$user->update(['updated_at' => now()]);
더 빠른 방법을 사용할 수 있습니다:
$user->touch();
또 다른 경우에는 현재 모델의 selected_at만 업데이트하는 것이 아니라 레코드도 업데이트하고 싶을 때가 있습니다. 우월한 관계.
예를 들어 댓글이 업데이트되면 게시물 테이블의 update_at를 업데이트하려고 합니다.
그런 다음 모델에서 $touches 속성을 정의해야 합니다.
class Comment extends Model { protected $touches = ['post']; public function post() { return $this->belongsTo('Post'); } }
8. Timestamp 필드는 자동으로 Carbon 클래스로 변환됩니다.
마지막 팁이지만 이미 알고 있어야 하므로 알림에 가깝습니다.
기본적으로 Created_at 및 update_at 필드는 자동으로 $dates로 변환되므로
Carbon의 메서드를 사용하기 위해 Carbon 인스턴스로 변환할 필요가 없습니다.
예:
$user->created_at->addDays(3); now()->diffInDays($user->updated_at);
바로 그 것입니다. 빠르고 유용한 팁입니다!
laravel 프레임워크와 관련된 더 많은 기술 기사를 보려면 laravel 튜토리얼 칼럼을 방문하세요!
위 내용은 Laravel 모델 타임스탬프 사용을 위한 8가지 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

분산 팀원이 도구 및 리소스에 공정한 액세스 권한을 갖도록하는 방법 : 1) 비동기 비디오 또는 텍스트 업데이트와 같은 저 대역폭 대안 사용, 연결 문제를 해결하기 위해; 2) 코어 중첩 근무 시간을 설정하고 시간대 차이를 관리하기위한 유연한 근무 시간을 제공합니다. 3) 번역 기능과 문화 인식 훈련을 통해 다양한 문화적 요구에 적응합니다. 이러한 전략은 포용적이고 효율적인 원격 작업 환경을 조성하는 데 도움이됩니다.

forenhancingremotecollaboration, aninstantmessagingtoolmusthave : 1) 신뢰성이 연속적으로 해당하는 경우, 2) anintuitiveuserinterinterfaceynavigation, 3) Real-TimenotificationStayupdated, 4) SeamlessFilesharingforefficialDocumentExchange, 5) 통합

ThebiggestchallengeofmanagingDistributedTeamsiscommunication.toaddressthis, usetoolslikeslack, Zoom 및 Github; setClearExectations; FoscertrustandAutonomy; ubstractAnchronousworkpatterns; andintegratestaskmanagement withCommunicationPlatformsForforforforforforforforforforfforforfforforfforforfforforfforfforfforfforforfforforfforforfforforfforforforfforfforforfforforfforforformital

Laravel의 최신 버전은 다음을 포함하여 보안을 크게 향상 시켰습니다. 1.보다 강력한 토큰 검증 메커니즘을 통해 CSRF 보호 향상; 2. 향상된 쿼리 구성 방법을 통해 개선 된 SQL 주입 보호; 3. 사용자 데이터 보안을 보장하기위한 더 나은 세션 암호화; 4. 더 미세한 세분화 된 사용자 인증 및 MFA (Multi-Factor Authentication)를 지원하는 인증 시스템 향상.

Tonavigateschedulingconflictsinaglobalworkforce, usetechnology, 공감 및 전략적 계획 : 1) EmployToolsworldtimebuddyorcalendlyforscheduling; 2) rotatemeettimeettimeettimeStoensureFairness; 3) SpuctionCoreHourOverlap;

Laravel Full-Stack Development에서 API 및 프론트 엔드 로직을 관리하는 효과적인 방법은 다음과 같습니다. 1) 편안한 컨트롤러 및 리소스 라우팅 관리 API 사용; 2) 블레이드 템플릿 및 vue.js 또는 반응을 통한 프론트 엔드 로직 처리; 3) API 버전화 및 페이징을 통한 성능 최적화; 4) 유지 관리 및 확장 성을 보장하기 위해 백엔드 및 프론트 엔드 논리의 분리를 유지합니다.

TotackleculturalIntricaciesindipributedTeams, Fosteranenvernmentcelebratingdifferences, bemindfulofcommunication, andusetoolsforclarity.1) 구현 culturalexChangessessionStosharestoriesandtraditions.2) AdvernCommunicationMethodStosuitculturalPreference

toAssesstheeffectiveIneSofRemoteCommunication, FocusOn : 1) indagementMetricsLikemEsageFrequencyAndResponSetime, 2) SentimentAnalySistoGaUgeEmoptionalTone, 3) MeetingEfficivenitesThrougAntSendAndActionItems, and4) NetworkAnalysistOndStandCommiticaticPA


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
