【问题标题】:Get ids from DB in Laravel在 Laravel 中从数据库中获取 ID
【发布时间】:2022-11-21 20:40:48
【问题描述】:

我可以在没有 foreach 的情况下简化这段代码吗?

$userQuestIds = [2,4,45,586,16,2,143,234,654,78,56];

$typeQuests = [];
foreach ($userQuestIds as $qId) {
    $typeQuests[] = Quest::where(['id' => $qId])->first();
}

【问题讨论】:

    标签: laravel


    【解决方案1】:

    你可以使用whereIn

    $typeQuests = Quest::whereIn('id', $userQuestIds)->get();
    

    【讨论】:

      【解决方案2】:

      如果您有名为“userQuests”的 Quest -> UserQuest 关系和表“user_quests”,您可以这样获取它们:

      Quest::whereHas('userQuests', function (Builder $query) {
          $query->where('user_quests.status_id', 1);
      })->get();
      

      编辑:自从我开始回答以来你已经简化了你的问题,请记住你也有这个选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-26
        • 2019-08-15
        • 2015-08-11
        • 2019-03-21
        • 1970-01-01
        • 2017-09-12
        相关资源
        最近更新 更多