【问题标题】:Laravel whereIn on a query with a relationshipLaravel whereIn 在有关系的查询上
【发布时间】:2021-07-15 03:00:57
【问题描述】:

四处寻找,但找不到答案

我有一个类似的查询:

$users = User::with('contact')->get();

这将返回如下内容:

{
   "id":1,
   "name":"Foo",
   "contact":[
      {
         "number":"123"
      },
      {
         "number":"456"
      },
      {
         "number":"789"
      }
   ]
}

我想用另一个关系创建另一个查询,该关系将返回数字在上述任何一个(123、456、789)中的条目:

$admins = Admin::with('info')->whereIn('number', THE NUMBERS FROM THE FIRST QUERY)->get();
// Assumption is that numbers here is coming from the relationship, and info is a different table than contacts

非常感谢任何有关如何实现这一目标的帮助

【问题讨论】:

    标签: laravel eloquent relational-database eloquent-relationship


    【解决方案1】:

    您的第一个查询,

    $users = User::with('contact')->get()->toArray();
    
    $data = []
    foreach($users as $a => $b) {
       foreach($b['contact'] as $c => $d) {
             $data[] = $d['number'];
        }
    }
    

    第二次查询:

    $admins = Admin::with('info')->whereIn('number', $data)->get();
    

    【讨论】:

      猜你喜欢
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      相关资源
      最近更新 更多