Eloquent의 Accessors와 Mutators
Submitted by river -
등록 10 years ago - 수정 10 years ago
DB에서 데이터를 읽을 때, 혹은 저장할 때 규칙을 정해서 값을 변환하고 싶을 때가 있다. 날짜를 읽을 때 YYYY-MM-DD의 문자열로 바꾼다든지, 비밀번호를 저장할 때 해시코드로 저장하든지 등을 생각해 볼 수 있다.
Eloquent
는 모델의 attribute에 값을 읽거나 쓸 때 자동으로 호출되는 메소드를 정의하는 방법을 제공하는 데 이를 각각 Accessor
와 Mutator
라고 부른다.
Accessor는 get{어트리뷰트명}Attribute
형태, Mutator는 set{어트리뷰트명}Attribute
형태로 메소드 명을 정해서 사용하면 된다.
주의: 컬럼명이 snake-case 형태여도 accessor, mutator는 camel-case 형태로 이름을 정해야 한다. 예를 들어 컬럼명이 first_name이면 accessor는 getFirstName으로 써야 한다.
Accessor
Accessor는 모델의 attribute 값을 읽을 때 불려지는 메소드다.
class User extends Eloquent {
public function getFirstNameAttribute($value)
{
return ucfirst($value);
}
}
Mutator
Mutator는 모델의 attribute 값을 설정할 때 불려지는 메소드다.
class User extends Eloquent {
public function setPasswordAttribute($value)
{
$this->attributes['password'] = Hash::make($value);
}
}
관련 글
Stats
-
0 likes
- 2762 views