2017-06-02 39 views
1

我想使用whereBetween之間2個不同的日期,但我得到一個錯誤「調用成員函數whereBetween()整數」。我使用引導datepicker從用戶獲取2日期輸入。我的代碼如下:調用成員函數whereBetween()在laravel 5.4中的整數?

我的形式是以下:

<div class="form-group"> 
<label for="start_date">From:</label><input type="text" name="startdate" id="startdate"> 
</div> 
<div class="form-group"> 
<label for="enddate">To:</label><input type="text" id="enddate" name="enddate"> 
</div> 

我的查詢是下面:

$client_ids = Array 
       (
       [0] => 1 
       [1] => 5 
       ) 
$start = 2017-06-01; 
$end = 2017-06-02; 

$results = DB::table('lead_audit AS l') 
      ->leftjoin('suppliers AS s', 's.id', '=', 'l.supplier_id') 
      ->leftjoin('campaigns AS c', 'c.id', '=', 'l.campaign_id') 
      ->select('s.name AS Supplier', 'c.name AS Campaign', 'l.disposition AS Disposition') 
      ->count() 
      ->whereBetween('l.received', [$start, $end]) 
      ->whereIn('l.client_id', $client_ids) 
      ->groupBy('s.name', 'c.name', 'l.disposition') 
      ->orderBy('s.name') 
      ->orderBy('c.name') 
      ->orderBy('l.disposition') 
      ->get(); 

我GOOGLE了它,我已經嘗試的「裹在碳對象日期的解決方案「就像下面的 在我的控制器之上,我把這條線」使用Carbon \ Carbon;「和改變在whereBetween查詢是本象下面這樣:

->whereBetween('l.received', [new Carbon($start), new Carbon($end)]) 

但沒有運氣再次相同的錯誤「呼叫到整數成員函數whereBetween()」。我也懷疑上述完整查詢的順序是否正確?有人能幫我解決這個問題嗎?謝謝。

回答

1

問題是->count()後面跟着->whereBetween()

函數count()爲您提供了select()的行數,因此它返回一個整數。

您必須刪除->count(),查詢才能正常工作。如果你想從你查詢的行數,你可以做到以下幾點:

$results = DB::table('lead_audit AS l') 
     ->leftjoin('suppliers AS s', 's.id', '=', 'l.supplier_id') 
     ->leftjoin('campaigns AS c', 'c.id', '=', 'l.campaign_id') 
     ->select('s.name AS Supplier', 'c.name AS Campaign', 'l.disposition AS Disposition') 
     ->whereBetween('l.received', [$start, $end]) 
     ->whereIn('l.client_id', $client_ids) 
     ->groupBy('s.name', 'c.name', 'l.disposition') 
     ->orderBy('s.name') 
     ->orderBy('c.name') 
     ->orderBy('l.disposition') 
     ->get(); 
$num_rows = count($results); 

查詢構建器還提供了多種方法,總諸如countmaxminavgsum。您可以在構建您的查詢後調用以下任何方法
來源:https://laravel.com/docs/5.4/queries#aggregates

+0

首先,感謝您的快速回復。像魅力一樣工作。再次感謝。 –