【问题标题】:Laravel : Fetching records with conditionLaravel:获取有条件的记录
【发布时间】:2016-07-24 08:37:34
【问题描述】:

我有四个模型User,Reward,RewardUnlocked,RewardClaimed,它们之间的关系是:

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

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

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

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

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

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

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

暂时我的代码是

控制器:

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

以下代码的问题是我必须发送奖励列表,并在此处显示您已解锁奖励的复选标志或叉号。

【问题讨论】:

    标签: php laravel eloquent logic


    【解决方案1】:

    为了更清楚,我知道您需要在用户个人资料中显示奖励列表,其中包含解锁的奖励,分别是一个检查符号和一个十字符号,
    如果是这种情况,那么您可以使用属于与您的用户表到奖励表的许多关系,以及用于跟踪奖励声明和奖励解锁的状态列,您可以将其作为枢轴属性访问,因此任何不在中间表中的奖励都是未解锁,
    您可以在 Laravel 文档中阅读有关多对多关系的信息以进一步了解 https://laravel.com/docs/5.2/eloquent-relationships#many-to-many

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 2019-10-04
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 2020-01-31
      • 2019-06-23
      • 2019-05-24
      • 1970-01-01
      相关资源
      最近更新 更多