2016-07-24 117 views
0

我有四個型號UserRewardRewardUnlockedRewardClaimed以及它們之間的關係是:Laravel:獲取記錄與條件

User有很多RewardUnlocked,=>(多對一)

User有很多RewardClaimed =>(多對一)

Reward有許多RewardUnlocked =>(多對一)

Reward有很多RewardClaimed =>(多對一)

引進的問題是,用戶將首先解鎖獎勵當特定條件爲真,

現在的問題是,我想從Reward表獲取所有的獎勵,並顯示給用戶,並檢查各獎勵,如果reward_id存在於RewardUnlocked再展check sign如果不存在,則表明cross sign

視圖文件是一個header文件,所以我通過ajax發送變量。

就目前我的代碼是

控制器:

$rewards = App\Reward::all(); 
    foreach ($rewards as $reward){ 
    $list = App\User::with('unlocks')->where('user_id','=', Auth::user()->id)->first(); 
    } 

用下面的代碼的問題是,我要送獎勵名單,並配有檢查標誌或交叉顯示有表示您已解鎖獎勵。

回答

0

更清晰,我知道你需要顯示的獎勵列表中的用戶配置文件,有什麼獎勵分別解鎖,校驗符號和休息交叉跡象,
如果它的話,那麼你可以使用屬於你的用戶表的許多關係來獎勵表,並且狀態列可以追蹤獎勵和獎勵解鎖,並且你可以將它作爲樞軸屬性來訪問,所以不管中間表的獎勵是不是未鎖定的,你可以使用
閱讀Laravel關於多對多關係的doc以進一步瞭解https://laravel.com/docs/5.2/eloquent-relationships#many-to-many