Laravel:有条件地获取记录

加默

我有四个型号UserRewardRewardUnlockedRewardClaimed以及它们之间的关系是:

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

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

Reward有很多RewardUnlocked=>(多对一)

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

问题的引入是,当特定条件变为真时,用户将首先解锁奖励,

现在的问题是,我想从Reward表中获取所有奖励并显示给用户,并检查每个奖励,如果reward_id存在,RewardUnlocked则显示一个check signif not present然后显示cross sign

视图文件是一个header文件,所以我通过ajax发送变量。

目前我的代码是

控制器 :

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

以下代码的问题是,我必须发送奖励列表,并在其中显示一个复选标记或十字符号,表明您已解锁奖励。

阿克拉姆·瓦希德(Akram Wahid)

更清楚地说,我了解您需要在用户个人资料中显示一份奖励列表,其中包括解锁的所有奖励,分别为一个校验符号和一个十字符号(
如果是这样的话),那么您可以使用与您的用户表到奖励表,以及一个状态列以跟踪已领取的奖励和已解锁的奖励,您可以将其作为数据透视表属性访问,因此,
如果未解锁中间表中未包含的任何奖励,则可以在Laravel文档中阅读有关“多对多”的信息关系以进一步了解https://laravel.com/docs/5.2/eloquent-relationships#many-to-many

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章