Laravel 有条件地应用方法连接
Laravel apply method concatenation conditionally
通过查看这段代码:
if($status == 'processed'){
DB::connection('mydb')
->table('logs')
->where('id', $id)
->update(array('status' => $status));
}else{
DB::connection('mydb')
->table('logs')
->where('id', $id)
->where('id2', $id2)
->update(array('status' => $status));
}
代码的语义没有多大意义,因为它是从一个更大的文件中摘录的。任何方式我都专注于如何在给定条件后连接更多方法
如上
if(A)
DB->method1()->method2()
else
DB->method1()->method3()->method2()
关于如何以更优雅的方式编写它有什么想法吗?
谢谢
您可以将 where
子句添加到同一查询对象:
$query = DB::connection('mydb')->table('logs')->where('id', $id);
if ($status != 'processed') {
$query->where('id2', $id2);
}
$query->update(['status' => $status]);
通过查看这段代码:
if($status == 'processed'){
DB::connection('mydb')
->table('logs')
->where('id', $id)
->update(array('status' => $status));
}else{
DB::connection('mydb')
->table('logs')
->where('id', $id)
->where('id2', $id2)
->update(array('status' => $status));
}
代码的语义没有多大意义,因为它是从一个更大的文件中摘录的。任何方式我都专注于如何在给定条件后连接更多方法 如上
if(A)
DB->method1()->method2()
else
DB->method1()->method3()->method2()
关于如何以更优雅的方式编写它有什么想法吗?
谢谢
您可以将 where
子句添加到同一查询对象:
$query = DB::connection('mydb')->table('logs')->where('id', $id);
if ($status != 'processed') {
$query->where('id2', $id2);
}
$query->update(['status' => $status]);