当“ when”方法只有一种时,代码可以正常工作。 但是当我像下面这样使用continuous时,我收到了错误消息
在整数上的when()调用成员函数
我不知道出了什么问题?谢谢您的帮助!
$variable=1;
DB::table('products')
->where('id',$p_id)
->when($status_0_prop=='true', function($query) use ($variable){
return $query->update(['status'=>$variable]);
})
->when($queue_number_1_prop=='true', function($query) use ($variable){
return $query->update(['queue_confirm_1'=>$variable]);
})
->when($queue_number_2_prop=='true', function($query) use ($variable){
return $query->update(['queue_confirm_2'=>$variable]);
})
->when($queue_number_3_prop=='true', function($query) use ($variable){
return $query->update(['queue_confirm_3'=>$variable]);
})
->when($img_buy_prop=='true', function($query) use ($variable){
return $query->update(['img_buy'=>$variable]);
});
或者我该如何使用雄辩的方法来雄辩这种方法?
答案 0 :(得分:2)
尝试在末尾添加->get();
。
$variable=1;
DB::table('products')
->where('id',$p_id)
->when($status_0_prop=='true', function($query) use ($variable){
return $query->update(['status'=>$variable]);
})
->when($queue_number_1_prop=='true', function($query) use ($variable){
return $query->update(['queue_confirm_1'=>$variable]);
})
->when($queue_number_2_prop=='true', function($query) use ($variable){
return $query->update(['queue_confirm_2'=>$variable]);
})
->when($queue_number_3_prop=='true', function($query) use ($variable){
return $query->update(['queue_confirm_3'=>$variable]);
})
->when($img_buy_prop=='true', function($query) use ($variable){
return $query->update(['img_buy'=>$variable]);
})->get();
答案 1 :(得分:0)
由于update
方法返回一个整数,我想您的$query
的值将得到更新,并且不再是Query\Builder
实例。