2017-08-01 16 views
1

我很抱歉,如果我的問題沒有意義......如何從laravel中的兩個表之間的雄辯關係訪問第三個表數據?

我有這兩個表區,和地址,並通過外鍵都與......這裏是區域和地址車型

class Area extends Model 
{ 

    protected $table='areas'; 

    public function sections(){ 

     $this->hasMany(Area::class,'area','id'); 
    } 

    public function address(){ 
     $this->belongsTo(Address::class,'id'); 
    } 
} 

class Address extends Model 
{ 
    protected $table='address'; 

    public function area(){ 
     return $this->hasMany(Area::class,'id'); 
    } 
} 

和我有第三個表區連接到區域表。

我的問題,我可以做,可以從部分訪問地址表的數據雄辯的關係「一節表區連接沒有解決」

class Section extends Model 
{ 
    protected $table ='sections'; 

    protected $fillable =[ 
     'sec_code', 
     'area', 
     'id', 
    ]; 


    public function beneficiaries(){ 
     return $this->hasMany(Beneficiary::class,'ben_sec','id'); 
    } 

    public function area_sec(){ 
     return $this->belongsTo(Area::class,'area'); 
    } 

    public function address(){ 
    // need the eloquent relation if could 
} 

} 

謝謝

回答

2

把它作爲一個PROPERT:從您的區域關係第一,所以代碼會是這樣訪問它Ÿ不是一個方法:

$model->area_sec; 
0

你可以得到的數據

class Section extends Model 
{ 
    protected $table ='sections'; 

    protected $fillable =[ 
     'sec_code', 
     'area', 
     'id', 
    ]; 


    public function area_sec(){ 
     return $this->belongsTo(Area::class,'area'); 
    } 

    public function address(){ 
     return $this->area_sec->address; 
    } 

} 
+1

謝謝你,它的作品,但我得到這個#eagerLoad:數組:1 [▼ 「地址」=>關閉{#181}▶ ] #loc我怎樣才能訪問這個eagerload數組 – Tariq

+0

你調用該方法後得到的? –

+0

我得到與上面的代碼相同的錯誤:調用未定義的方法Illuminate \\ Database \\ Query \\ Builder :: addEagerConstraints() –