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에 따라 라이센스가 부여됩니다.