where(function($quer-6ren">
gpt4 book ai didi

Laravel foreach "where"with eloquent

转载 作者:行者123 更新时间:2023-12-01 23:03:59 25 4
gpt4 key购买 nike

我有某些无法硬编码到查询中的字段和数据值。我试图得到这样的东西:

return Listing::where('id', $id)
->where(function($query) use ($input) {
->where('field_1', 'foo_1')
->where('field_2', 'foo_2')
->where('field_3', 'foo_3')
}
->get();

**这是我所拥有的**
    return Listing::where('id', $id)
->where(function($query) use ($input) {
$i = 0;
foreach ($input as $key => $value) {
$i++;
// ->where('field_1', red_1); // Desired output
->where("where(field_{$i},".$value."_1)");
// $query = $query."where(field_{$i},".$value."_1)"."<br>";
// return $query prints out the following
/*
field_1 red_1,
field_2 foo_1,
field_3 bar_3
*/
}
})
->get();

最佳答案

$query = Listing::where('id', $id);
$i = 0;
foreach ($input as $key => $value) {
$i++;
$query->where('field_'.$i,$value.'_'.$i);
}
return $query->get();

一个你没有正确链接,两个你错误地使用了 querybuilder 闭包。如果您想像循环一样执行逻辑,那么您必须分解查询。此外,使用 where 闭包就像在你的 where 条件周围写一个括号。

就像是:
  $query->where('bacon', $foo)
$query->where(function ($query) use ($bar, $baz){
$query->where('apple', $bar);
$query->orWhere('orange', $baz)
});

大致翻译为:
  WHERE bacon = $foo AND (apple = $bar OR orange = $baz)

关于Laravel foreach "where"with eloquent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27118668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com