2014-03-24 10 views
0

두 가지 모델 (사용자 및 서비스)이 있습니다. 내가 원하는 것은 사용자의 모든 서비스를 표시하는 것입니다. 이 모든 서비스를 보여줘 나의 작업입니다 : 컨트롤러에 하나를 여러 개 적용하는 방법은 무엇입니까?

public function index() 
{ 
    $services = Service::all(); 

    // load the view and pass the nerds 
    return View::make('services.index')->with('services', $services); 
} 

내 사용자 모델

나는이 기능을 추가

내 서비스 모델에서 다음
public function service() 
{ 
    return $this->hasMany('Service'); 
} 

:

public function user() 
{ 
    return $this->hasOne('User'); 
} 

누군가가 어떤 생각을 가지고 있다면 제발, 나는 매우 감사하게 될 것이다 :)

답변

0

같은 컨트롤러 또는보기에

public function user() 
{ 
    return $this->belognsTo('User'); 
} 

그런 다음 당신이 그들을 구문 분석 할 수 이러한 관계 (단지 foreach는 부분) 관계 당신의 로컬 및 foregin 키를 정의 할 수 있음에 주목 일대 다 관계를 찾고있는 사람은 hasMany()belongsTo()입니다. 그와 마음에, 당신의 Service 모델에서, 그래서 같은 관계를 정의

...

public function user() 
{ 
    return $this->belongsTo('User'); 
} 

그것은 당신이 그것을 사용하지만,하지 않기 때문에이 시나리오에서 정말 너무 많이 중요하지 않습니다 나중에 혼란을 피할 수 있습니다.

이제 사용자의 서비스를 얻으려면 User 모델을 사용할 수 있습니다.

$services = User::find(1)->services;

또는 당신은 단지 사용자의 서비스에 로그인을 원한다면 ...

$services = Auth::user()->services;

+0

감사합니다,하지만 난 비의 속성을 얻으려고이 오류 "를 가지고 있음을 시도 할 때 -object " – user3438415

+0

오, 알겠습니다. 우리의 방법은 다릅니다. 'User :: find (1) -> service'를 시도해보십시오. 그게 작동하지 않으면 1의 ID로 저장된 사용자가 없으므로 가능성이 높습니다. – user3158900

+0

덕분에 그게 작동합니다 :) – user3438415

0

귀하의 서비스 모델입니다. 이

$user=User::find($id); 
foreach($user->service as $service){ 
//do something 
    echo $service->id 
} 
관련 문제