<span style="color: #008080;">1</span> <span style="color: #800080;">$q</span>->where('created_at', '>=', <span style="color: #008080;">date</span>('Y-m-d').' 00:00:00'));
以前查資料時,直接用where條件來比值判斷,但是格式就會有嚴格的要求,如果上面的程式碼第三個參數是 date('Y-m-d') 而不加後面的00:00:00這樣在資料庫裡面就會找不到
而判斷是否相等 也都是對格式嚴格的要求
<span style="color: #800080;">$q</span>->whereDate('created_at', '=', <span style="color: #008080;">date</span>('Y-m-d'));
現在用whereDate,laravel自備的方法,就會自動幫你進行日期格式處理,保證date與搜尋的格式是相符的。
<span style="color: #800080;">$q</span>->whereDay('created_at', '=', <span style="color: #008080;">date</span>('d'<span style="color: #000000;">)); </span><span style="color: #800080;">$q</span>->whereMonth('created_at', '=', <span style="color: #008080;">date</span>('m'<span style="color: #000000;">)); </span><span style="color: #800080;">$q</span>->whereYear('created_at', '=', <span style="color: #008080;">date</span>('Y'));
例如上面的程式碼,只搜尋天數為某值的時候,用whereDay,會去資料庫裡搜尋某一天與其匹配的值。
一般這個方法的活動場景,模型中
class Company extends \Eloquent{...
<br> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> memberApplies() { </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>->belongsToMany('App\User', 'user_company_applies'<span style="color: #000000;">) </span>->wherePivot('apply_status', UserCompanyApply::<span style="color: #000000;">applyVerify) </span>->wherePivot('type', UserCompanyApply::<span style="color: #000000;">TYPE_USER); }</span>
wherePivot什麼意思? ,首先是company和user表,建立多重關聯的關係,關聯表是user_company_applies
首先如果不加wherePivot,怎麼顯示
資料庫這樣
、
控制器:
顯示3條數據,
也就是從中間表裡找company_id為1對應的user_id的數據,在把user_id的值帶到user表裡去查詢有哪些數據,也就是這3條,這是原來的多對多的流程
現在加上了wherePivot方法,無非是加上一個判斷條件,獲得多對多的數據之後,再去查找中間表裡的apply_status和type字段,查找2個都為1的數據是那條,有則顯示
資料庫現在改成這樣
2個值都為1了,看能不能查詢出 user_id為2525的這條資料
開始測試
OK