我试图在查询中根据变量的数量得到一些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子句,值= 1.如何将值的其余值更改为0?
这里到底出了什么问题?
解决方法
您需要使用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();
编辑
对于更新,最简单的事情可能是首先将all设置为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));