【问题标题】:Laravel multiple whereIn arrayLaravel 多个 whereIn 数组
【发布时间】:2015-08-22 20:57:09
【问题描述】:

我想知道是否有一种方法可以将 whereIn 与数组一起使用, 类似于 where 数组的东西

User::where(['user_id' => $currentUser, 'group_id' => $currentGroup]);

所以我正在寻找这个:

User::whereIn(['group' => $availableGroups, 'session' => $currentSessions]).

这应该相当于两次使用 whereIn 子句。

我正在考虑像这样解决这个问题:

foreach (query as $key => $value)
   $userQuery->whereIn($key, $value);

我想知道是否有更好的方法。

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    不,那是不可能的。您必须多次使用whereIn()(或循环使用)。

    没有逻辑可以正确处理这样的参数:

    public function whereIn($column, $values, $boolean = 'and', $not = false)
    {
        $type = $not ? 'NotIn' : 'In';
    
        // ... irrelevant code omitted ...
    
        $this->wheres[] = compact('type', 'column', 'values', 'boolean');
    
        $this->addBinding($values, 'where');
    
        return $this;
    }
    

    【讨论】:

    • 我不明白你所说的“没有逻辑可以处理......”
    • 我发布的代码来自框架核心。如果支持数组数组,则该方法将包含处理该问题的逻辑。可能为每个子数组调用whereIn...我添加了这段代码来证明我的陈述。
    猜你喜欢
    • 2018-07-15
    • 2017-05-30
    • 1970-01-01
    • 2019-11-06
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    相关资源
    最近更新 更多