2017-01-02 40 views
0

我有一個查詢,給了我不同的項目的總計數的列表,如:Laravel雄辯查詢重用額外條件

$data = DB::table($Table1) 
      ->join($table2,$Table1.'.id','=',$Table2.'.device_key') 
       ->where($Table1.'.created_at', '>', $value) 
       ->select('item', DB::raw('count(*) as total')) 
       ->groupBy('item') 
       ->lists('total', 'item'); 

現在我想有額外的條件爲>其中($表1來獲取相同的數據。 '.status','=','SUCCESS')。

我該怎麼做?

回答

0

使用克隆來複制查詢對象進行修改。

$query = DB::table()->where(); 

$clonedQuery = clone $query; 
$clonedQuery->where(..); 
+0

做我一直「查詢」的選擇和名單也部分因爲這些將返回項目的列表和計數,因此不選擇狀態欄。將克隆這個查詢並添加在哪裏工作? – Makwana

1

我不認爲你會逃脫任何比這更好的東西。

$query = DB::table($Table1) 
      ->join($table2,$Table1.'.id','=',$Table2.'.device_key') 
       ->where($Table1.'.created_at', '>', $value) 
       ->select('item', DB::raw('count(*) as total')) 
       ->groupBy('item'); 

$data1 = $query->lists('total', 'rem'); 
$data2 = $query->where($Table1 . '.status', '=', 'SUCCESS')->lists('total, 'rem');