1
好的,我卡住了,真的需要幫助請。如何獲得數據透視表給定日期範圍內的最後一個條目
這是設置:
1)表中的項目:ID,名稱
2)表狀態:ID,標題
3)表ITEM_STATUS:ID,ITEM_ID,STATUS_ID,created_at
項目模式有關係:
public function statuses(){
return $this->belongsToMany('Status')->withTimestamps();
}
現在,我想要的物品無線個最新狀態「7」或「9」,和二零一五年十月十九日二○一五年十月二十日 最接近我得到之間產生是:
$items = Item::with('statuses')->whereHas('statuses', function ($q) {
$q->where('created_at','>=','2015-10-19');
$q->where('created_at','<','2015-10-20');
$q->whereIn('status_id',array('7','9'));
}
);
問題是,這是不工作的權利。 它給出了在該日期範圍內獲得其中一個status_id的所有項目。 因此,如果項目在2015-10-19獲得狀態「7」,並且例如2015-10-22的狀態爲「11」,則會導致結果。我想在該日期範圍中只有項目具有最新(最新)狀態「7」或「9」。
更新: 例如:表ITEM_STATUS
item_id status_id created_at
1 1 2015-10-06
1 3 2015-10-07
2 6 2015-10-07
2 3 2015-10-08
2 5 2015-10-09
如果設置了過濾器爲:STATUS_ID = 3和時間範圍2015年10月6日至2015年10月9日:我想僅第1項,因爲在特定時期的ITEM 2有另一個更新的狀態(5)
請幫忙! TNX Ÿ
好了,這是事實。我編輯了問題,但這還不夠。我仍然可以得到在給定時間內給出狀態的所有項目,而不僅僅是那個時期給出狀態爲最後一項的項目。 – Yuray