2017-04-24 10 views
1

Conditionというモデルには、datetimeを格納するexpires_atという列があります。計算された日差の間にモデルを取得

基本的に期限切れになるすべての条件を取得する必要があります。条件は、保存された日付に達するまでにわずか5日しか残っていない場合に期限切れになる予定です。

Eloquentでこれをどのように達成できますか?私はwhereのロジックを配置する必要があります。

Condition::where(xxx)->get() 

PS。これが役に立ちそうな場合はCarbonを使用しています。

答えて

1

このコードでは、expires_atがnowと+ 5 daysの間のオブジェクトを返します。

Condition::whereBetween('expires_at', [Carbon::now(), Carbon::now()->addDays(5)])->get() 
0

スコープを使用する必要があります。

条件クラスにメソッドを追加する必要があります。

public function scoperExpired($query) { $date = date('Y-m-d', strtotime('+5 day')); return $query->where('expires_at', '<=', $date);}

、今、あなたはスコープとして期限切れの使用することができます: -

Condition::expired()->get() 期限切れのすべての条件を返します。