2016-02-23 145 views
0

我有一個數據庫結構如下。Laravel 5 - 模型之間的關係

campaign 

id | name   | ... 
---------------------- 
5  | something | ... 
---------------------- 

campaign_creatives 

id | type   | campaignId 
--------------------------------- 
1  | something | 5 
--------------------------------- 

campaign_creatives_data 

id | name  | campaignCreativesId 
-------------------------------------------- 
1 | something | 1 
-------------------------------------------- 
2 | something | 1 
-------------------------------------------- 
3 | something | 1 
-------------------------------------------- 

在我的運動模式,我有

public function campaignCreatives() 
{ 
    return $this->hasOne('App\CampaignCreatives', 'campaignId'); 
} 

在CampaignCreatives我

public function campaign() 
{ 
    return $this->belongsTo('App\Campaign'); 
} 

public function campaignCreativesData() 
{ 
    return $this->hasMany('App\CampaignCreativesData', 'campaignCreativesId'); 
} 

並在CampaignCreativesData

public function campaignCreatives() 
{ 
    return $this->belongsTo('App\CampaignCreatives'); 
} 

這背後的理論是一個運動Ç有一個CampaignCreatives。 CampaignCreatives可以有一個或多個CampaignCreativesData。

我不太確定我的模型對此是否正確?我有一種感覺,它不是。原因我說這是在我的一個觀點中,如果我做

{{ dd($campaignCreative) }} 

我可以看到有關campaignCreative的信息。但是,如果我做

{{ dd($campaignCreative->campaignCreativesData) }} 

我得到警告

Undefined property: Illuminate\Database\Eloquent\Collection::$campaignCreativesData 

是我的關係,建立適當的,還是我做錯事與外鍵?

感謝

+1

看來你'$ campaignCreative'是一個集合,而不是單個對象。 'dd($ campaignCreative)'的輸出是什麼? – microtony

+0

這是一個集合 –

+0

哦,如果我把它作爲一個單一的對象來代替,那麼我可以訪問數據:-) –

回答

0

試試這個

{{ dd($campaignCreative->campaignCreativesData()) }} 
+0

它說方法campaignCreativesData不存在 –

1

您通過收集需要循環

@foreach ($campaignCreative->campaignCreativesData as $campaignCreativesData) 
{{ $campaignCreativesData->name }} 
@endforeach