我试图在查询中根据变量的数量获得一些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));
我正在更新特定的where子句,value = 1
。如何将值的其余部分设为0?
这里到底出了什么问题?
答案 0 :(得分:3)
您需要使用get()
的返回值,而不是查询构建器实例:
$result = $query->get();
var_dump($result);
关于输入,我这样做:
$names = Input::get('name');
$query = DB::table('table');
foreach($names as $name){
$query->orWhere('id', $name);
}
$result = $query->get();
对于更新,最简单的事情可能是首先将所有内容设置为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));