Laravel에서 모호한 열 Eloquent 쿼리 예외 방지

시나리오: 관계가 있고 몇 개의 열만 가져오려고 합니다.

모델:



사용자:




public function teams()
{
    return $this->belongsToMany(Team::class);
}





public function users()
{
    return $this->belongsToMany(User::class);
}


그런 다음 다음과 같이 사용자를 팀에 연결할 수 있습니다.

Team::users()->attach(auth()->user());


이제 다음과 같은 팀별로 사용자 컬렉션을 얻을 수 있습니다.

$users = Team::users;


좋습니다. 데이터를 API나 보기에만 전달해야 할 수도 있지만 사용자 모델에 민감한 데이터가 있거나 사용자 모델이 거대하고 필요한 데이터만 가져오는 더 나은 접근 방식일 수 있습니다. 이름과 이메일만 있으면 아마도 다음과 같이 하고 있을 것입니다.

$team = Team::first();
$team->users()->select(['name', 'email'])->get();


사용자 모델에는 열 이름이 있고 팀 모델에도 열 이름이 있을 수 있기 때문입니다. 그러나 Laravel의 모든 것이 정말 쉽기 때문에 걱정하지 마십시오. 필요:

Team::users()->select(['users.name', 'users.email'])->get();


"where"메서드를 추가해야 하는 경우에도 동일한 아이디어가 적용됩니다.

Team::users()->where('users.email', $request->get('email'))->get();

좋은 웹페이지 즐겨찾기