Laravel: orWhere 在一个循环中

Lok*_*oko 4 php laravel

我试图orWhere根据变量的数量在查询中获取一些子句,但是我现在得到的查询结果不是我需要的。

$names = Input::get('name');
$query = DB::table('table')
->where('name', '=', 'something');
foreach ($naam_categorie as $naam){
    $query->orWhere('id',$naam));
}

$query->update(array('value' => 1));
Run Code Online (Sandbox Code Playgroud)

我正在更新一个特定的 where 子句,到value = 1. 如何将其余值设为 0?

这里到底出了什么问题?

luk*_*ter 5

您需要使用的返回值get(),而不是查询生成器实例:

$result = $query->get();
var_dump($result);
Run Code Online (Sandbox Code Playgroud)

关于输入,我会这样做:

$names = Input::get('name');
$query = DB::table('table');
foreach($names as $name){
   $query->orWhere('id', $name);
}
$result = $query->get();
Run Code Online (Sandbox Code Playgroud)

编辑

对于更新,最简单的事情可能是首先将所有设置为0,然后将匹配的设置为1

DB::table('table')->update(array('value' => 0));

$names = Input::get('name');
$query = DB::table('table');
foreach($names as $name){
   $query->orWhere('id', $name);
}
$query->update(array('value' => 1));
Run Code Online (Sandbox Code Playgroud)