laravel 기본 튜 토리 얼 - 액세스 기
간단 한 소개
접근 기와 메모리 에 서 는 Eloquent 모델 속성 값 을 가 져 오 거나 설정 할 때 포맷 할 수 있 습 니 다.예 를 들 어 하나의 값 이 데이터베이스 에 저장 되 기 전에 Laravel encrypter 를 암호 화하 고 모델 을 통 해 접근 할 때 이 속성 을 자동 으로 복호화 할 수 있 습 니 다.
사용자 정의 접근 기와 메모리 외 에 도 Eloquent 는 날짜 필드 를 Carbon 인 스 턴 스 로 자동 으로 변환 하거나 문자열 필드 를 JSON 으로 변환 할 수 있 습 니 다.
접근 기 & 접근 기
접근 기 정의
접근 기 를 정의 하기 위해 서 는 모델 에
getFooAttribute
방법 을 만들어 야 합 니 다. 그 중 Foo
은 방문 해 야 할 열 이름 의 낙타 봉 방식 의 이름 입 니 다.이 예 에서, 우 리 는 first_name
속성의 접근 기 를 정의 할 것 이다.이 접근 기 는 Eloquent 에서 first_name
속성 값 을 가 져 오 려 고 시도 할 때 활성 화 됩 니 다.
보시 다시 피 속성 원본 값 은 접근 기 에 전 달 됩 니 다. 원본 값 을 조작 하고 포맷 된 값 을 되 돌려 줍 니 다.간단 한 접근
first_name
속성 만 있 으 면 액세스 기 에서 이 값 을 접근 할 수 있 습 니 다:$user = App\User::find(1);
$firstName = $user->first_name;
메모리 정의
메모리 하 나 를 정의 하기 위해 서 는 모델 에
setFooAttribute
방법 을 정의 해 야 합 니 다. 그 중 Foo
은 방문 하고 자 하 는 열의 낙타 봉 스타일 의 이름 입 니 다.그렇다면 이번 에는 first_name
속성 에 대한 메모리 정 의 를 내 립 니 다.이 메모 리 는 모델 이 속성 값 을 설정 하려 고 시도 할 때 호출 됩 니 다.attributes['first_name'] = strtolower($value);
}
}
저장 소 는 속성 에 설 정 된 값 을 받 습 니 다. 이 값 을 조작 하고 모델 내부
first_name
속성 에 설정 할 수 있 습 니 다.그래서 예 를 들 어 우리 가 $attributes
속성 을 first_name
로 설정 하려 고 한다 면:$user = App\User::find(1);
$user->first_name = 'Sally';
이 예 에서
Sally
방법 은 호출 되 고 수반 된다 setFirstNameAttribute
.메모리 에 서 는 이름 을 소문 자로 만 든 다음 내부 Sally
배열 에 값 을 설정 합 니 다.날짜 접근 기
기본적으로 Eloquent 는
strtolower
과 $attributes
을 Carbon 인 스 턴 스 로 변환 합 니 다. 이 인 스 턴 스 는 여러 가지 유용 한 방법 을 제공 할 수 있 으 며, 원생 PHP created_at
클래스 를 계승 할 수 있 습 니 다.어떤 필드 를 자동 으로 변환 할 수 있 는 지 사용자 정의 할 수 있 습 니 다. 심지어 이러한 변환 을 완전히 사용 하지 않 습 니 다. 모델 에 복사
updated_at
속성 이 필요 합 니 다.
날짜 로 여 겨 질 때 UNIX 시간 스탬프, 날짜 문자열
DataTime
, 시간 문자열, $dates
/ Y-m-d
인 스 턴 스 로 설정 할 수 있 으 며 날짜 값 은 자동 으로 데이터베이스 에 올 바 르 게 저 장 됩 니 다.$user = App\User::find(1);
$user->deleted_at = Carbon::now();
$user->save();
위 에서 말 한 바 와 같이 획득 한 속성 이
DateTime
속성 이 열거 한 값 일 때 자동 으로 Carbon
인 스 턴 스 로 전 환 됩 니 다. 이것 은 속성 적 으로 Carbon 의 일부 방법 을 사용 할 수 있 습 니 다.$user = App\User::find(1);
return $user->deleted_at->getTimestamp();
기본적으로 시간 스탬프 는
$dates
형식 으로 포맷 되 었 습 니 다.시간 스탬프 의 형식 을 사용자 정의 하려 면 모델 에 속성 Carbon
을 설정 해 야 합 니 다.이 속성 은 날짜 속성 이 데이터베이스 에 어떻게 저장 되 는 지, 모델 이 직렬 화 되 거나 JSON 화 될 때 어떻게 보 여 주 는 지 확인 합 니 다.
속성 변환
모델 에서 속성 을 정의 할 수 있 습 니 다
Y-m-d H:i:s
. 속성 을 일반적인 데이터 형식 으로 변환 하 는 데 편리 한 방법 을 제공 할 수 있 습 니 다.$dateFormat
속성 은 하나의 배열 이 어야 하고 모든 키 는 변환 이 필요 한 속성 명 이 어야 하 며 그 키 에 대응 하 는 값 은 속성 변환 이 필요 한 유형 이 어야 합 니 다.지원 하 는 전환 유형 은 $casts
, $casts
, integer
, real
, float
, double
, string
, boolean
, object
, array
, coolection
와 date
입 니 다.예 를 들 어 우 리 는
datetime
속성 을 바 꾸 고 데이터베이스 에 저 장 된 값 을 하나의 정형 timestamp
또는 is_admin
으로 바 꿉 니 다. 우 리 는 이 를 불 값 으로 바 꿉 니 다. 'boolean',
];
}
현재, 당신 이
0
속성 에 접근 할 때마다 그 값 은 불 값 으로 변 환 됩 니 다. 설령 데이터베이스 에 저 장 된 정형 값 이 라 하 더 라 도:$user = App\User::find(1);
if ($user->is_admin) {
//
}
배열 변환
1
변 환 된 유형 은 JSON 값 을 직렬 화 하 는 열 을 저장 하 는 데 특히 유용 하 다.예 를 들 어 데이터베이스 에 is_admin
형식의 필드 가 있 고 직렬 화 된 JSON 이 저 장 됩 니 다. 이 속성 array
변환 을 추가 하면 Eloquent 모델 에서 이 속성 에 접근 하면 자동 으로 반 직렬 화 됩 니 다. 'array'
];
}
전의 정의 가 완료 되면
TEXT
속성 에 접근 할 수 있 으 며, JSON 에서 PHP 배열 로 자동 으로 정렬 됩 니 다.array
속성 에 값 을 설정 하면 주어진 배열 은 자동 으로 JSON 형식 으로 정렬 되 어 저 장 됩 니 다.$user = App\User::find(1);
$options = $user->options;
$options['key'] = 'value';
$user->options = $options;
$user->save();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.