관계식에서 읽어들일 열을 설정하는 방법

4335 단어 Laravel

하고 싶은 일


관계 가져오기select * 및 모든 열 객체, 그래서 중지

전제 조건


사용자 및 게시물 존재, 사용자가 여러 게시물을 유지하는 관계
public function posts()
{
    return $this->hasMany(Post::class)
}

방법 1


with 호출 시 열 이름 추가
User::with(['posts:user_id,name'])->get()

관계식에 사용할 키를 선택에 넣어야 합니다.

방법


with 호출 시 검색 생성기 호출
User::with(['posts' => function($query){
    $query->select(['user_id','name']);
}])->get()
검색 범위도 사용할 수 있기 때문에 좀 더 치밀하게 할 수 있다.
// Postモデルにスコープ定義
public function scopeDefaultSelect($query)
{
    return $query->addSelect(['user_id','name']);
}

User::with(['posts' => function($query){
    $query->defaultSelect();
}])->get()

where 조건 등을 사용할 수도 있어요. 좋아요.

방법


관계식에서 지정
// Postモデルにスコープ定義
public function scopeDefaultSelect($query)
{
    return $query->addSelect(['user_id','name']);
}

public function posts()
{
    return $this->hasMany(Post::class)->defaultSelect();
}
의식이 없어도 defaultSelct 또는 addSelect추가 열 필요 시 방법 2 방법으로 추가 가능

좋은 웹페이지 즐겨찾기