2017-12-25 3 views
2

나는이 코드를 사용하여 모델을 얻고있다 :데이터베이스에서 모델을 가져온 후 함수를 호출하는 방법은 무엇입니까?

$user = \App\Http\Models\User::where('id', $id)->with('services')->get(); 

을하고 난 예를

$user->getServiceList(); //this metod gets ALL services, not hasMany 

이 함수를 호출 할하지만 방법 getServiceList 존재하지 않는 오류가 발생

+1

당신이 모델을 해달라고, 당신은 잠재적으로 많은 모델 인스턴스가 컬렉션이 ....'수 '항상 Collection (many)를 반환한다 .. 만약 당신이 원한다면'first'를 사용한다. – lagbox

+1

그의 ID로 사용자를 찾기 위해'$ user = User :: find ($ id);'를 사용할 수있다. 또한 'getServiceList' 함수를 어디에 선언 했습니까? – Nartub

답변

2

get()은 컬렉션을로드하므로 개체를 가져 오기 위해 반복 할 필요가 있습니다.

당신은 사용자 ID로 검색 할 경우
$users = \App\Http\Models\User::where('id', $id)->with('services')->get(); 
foreach ($users as $user) { 
    echo $user->getServiceList(); 
} 
2

그것은 find 방법을 사용하는 것이 훨씬 낫다 :

$user = \App\Http\Models\User::with('Service')->find($id); 

$user->getServiceList();