2016-07-22 2 views
0

두 모델 AwardGotAward, GotAward 모델의 외래 키는 Award 모델입니다.Laravel : 두 테이블의 레코드

Award 모델의 모든 레코드를 가져온 후 GotAward 모델의 각 Award 모델 ID를 확인하려면 사용자에게 "이 상을 받았습니다"라고 표시해야합니다.

나는 다음과 같은 코드가 있습니다

$awards = App\Award::all(); 

foreach ($awards as $checkAward) { 
    $unlockedAwards = App\unlockedAward::where('award_id','=',$awards->id); 
} 

가 좋은 방법인가?

답변

1
<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class GotAward extends Model 
{ 

    public function award(){ 
     return $this->hasOne('App\Award'); 
     //You can also specify the relationship in case of different fields in the DB table. By convention Laravel will check award_id in gotawards table 
/* return $this->hasOne('App\Award', 'award_id', 'gotaward_id');*/ 

    } 


} 

처럼 뭔가를해야만 할 수있는 보너스 모델에 hasMany의 지정 후 relationships

로 봐주십시오.

$result = $GotAward::where('condtion', 'value')->first(); 

$result->award->award_column_to_shwo_to_user 수상 테이블의 데이터가 포함됩니다.

웅변 관계를 살펴 보자

, here.

+0

는 또한'내가'의미 awards' 테이블 Award' 모델의 모든 레코드를 원한다. 모든 보너스를 사용자에게 보여줘야하며 보너스 타이틀이 없으면 보너스가 없거나 십자 기호가 표시됩니다. 어떻게 할 수 있습니까? – Gammer

0

없음 는 GotAward 모델을 조회 한 후 $award->AllAwards()