我有以下設置:過濾渴望加載數據4
俱樂部提供的活動,這是一種特殊類型的,所以3機型的關係:
俱樂部:
function activities()
{
return $this->hasMany('Activity');
}
活動:
function club()
{
return $this->belongsTo('Club');
}
function activityType()
{
return $this->hasMany('ActivityType');
}
ActivityType:
function activities()
{
return $this->belongsToMany('Activity');
}
因此,例如Club Foo可能會有一個名爲「Triathlon」的活動,該Activity具有ActivityTypes「游泳」,「跑步」和「自行車」。
這已經夠用了,但我需要在Club頁面上顯示ActivityTypes列表 - 基本上只是一個列表。所以我需要獲取所有相關活動的ActivityTypes。
我能做到這一點,像這樣從接收的俱樂部模型的實例的控制方法:
$data = $this->club->with(array('activities', 'activities.activityTypes'))->find($club->id)
這讓我與有關他們ActivityTypes沿着所有相關活動的對象。也夠公平的。但我需要應用更多的過濾。活動可能不是正確的狀態(它可能在數據庫中作爲草稿條目或已過期),所以我需要能夠僅獲取活動的活動類型,這些活動類型將在現場和未來進行。
在這一點上我迷路了...有沒有人有任何建議來處理這個用例?
感謝
謝謝 - 我採用了不同的答案,因爲您建議的方法意味着我只能通過activities()模型方法檢索活動活動。使用過濾器意味着我還可以獲得狀態爲「掛起」或其他任何狀態的人。 –