2016-07-24 115 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