2013-09-29 4 views
0

안녕하세요, id라는 user_id 및 friend_id가있는 Friend라는 모델이 있습니다. 친구의 행 ID가 아닌 친구의 user_id가 사용하는 사용자 모델과의 관계를 만들고 싶습니다. 도대체 내가 할 경우 hasOne('User', id); 친구의 행에 대한 ID를 취할 것입니다 SELECT * FROM users WHERE id = <friend_row_id> 대신 내가 그것을 가지고있을 것이라고 SELECT * FROM users WHERE id = <friend_user_id> 수동으로해야합니까? 아니면이 관계를 정의 할 수있는 방법이 있습니까?Laravel 4 : 행 ID가 아닌 관계

P. 나는 관계에 새로운 그래서 만약 내가 뭔가 바보 같은, 미안해!

편집 : 다음은 atm 코드입니다.

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

은 친구와 사용자 테이블은 다음과 같습니다 : 나는 친구에서 행을 얻을이 매번로

Friend    User 
    /////////////// ///////////// 
    // id  // // id  // 
    // user_id // // email // 
    // friend_id // // password// 
    /////////////// // name // 
         ///////////// 

, 다음과 같이

$ret = array(); 
     if(Auth::check()){ 
      $friend = new Friend(); 
      $ret['friends'] = $friend->where('friend_id', '=', Auth::user()->id)->get(); 
     } 
     error_log(print_r(DB::getQueryLog(),true)); 
    return View::make('index.index', $ret); 

프렌드 모델은 관계를 선언하는 기능을 가지고있다 그것은 관련 사용자도 올바르게 받아 들여야합니까? 사용자 모델이 친구 모델에 user_id 필드에 의해 친구 모델에 관련되어있는 경우

답변

0

,이 괜찮을해야합니다

return $this->hasOne('User'); 

Laravel은 행 ID를 사용하지 않습니다, 그것은 자동으로 키를 가정합니다 사용자 모델은 user_id입니다. 이 점에 대해 더 구체적으로 설명하려면 다음과 같이하십시오.

return $this->hasOne('User', 'user_id'); 
+0

더 명확하게 편집했습니다. – samuraiseoul