2013-11-04 63 views
0

我有一個數據庫中的程序列表。每個程序都有該程序所屬的organization_id,以及一個start_dateend_date以下場景的流利查詢

我的問題是,查詢應該如何看待一樣,如果給出了兩個日期,我必須得到所有日期爲特定機構之間的日期或端之間啓動的程序。以下查詢將返回超出組織範圍的所有程序(不屬於組織)。

<?php 

DB::table('programs') 
    ->where('organization_id', $organizationidlist[0]) 
    ->whereBetween('start_date', array($start_date, $end_date)) 
    ->orWhere(function ($query) use($start_date, $end_date, $organizationidlist) { 
     $query 
      ->where('organization_id', $organizationidlist[0]) 
      ->whereBetween('end_date', array($start_date, $end_date)) 
     ; 
    }) 
    ->orderBy('created_at', 'desc') 
    ->get() 
; 

?> 

回答

1

爲什麼不能用雄辯的模型做到這一點? Laravel有這樣一個很好的數據模型系統。你可以輕鬆地做自己想做的東西像什麼:

Organization::find($id)->projects()->where('start_date', '>', $start)->where('end_date', '<', $end)->orderBy('created_at', 'desc')->get(); 

http://laravel.com/docs/eloquent