開始タイマーと終了タイマー二つを作成します
( DBのカラム view_start_date が 現在時刻を超えたデータのみに限定する )
/**
* ● ローカルスコープ : ->withinStartTime() で 「表示タイマー開始」を現在時刻が過ぎた slide に限定する
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeWithinStartTime( \Illuminate\Database\Eloquent\Builder $query )
{
return $query->whereNull('view_start_date')
->orWhere(function($query) {
$query->whereNotNull('view_start_date')
->where('view_start_date','<=', \DB::raw('NOW()') );
});
}
( DBのカラム view_end_date が 現在時刻を超えていないデータのみに限定する )
/**
* ● ローカルスコープ : ->withinEndTime() で 「表示タイマー終了」を現在時刻が過ぎていない slide に限定する
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeWithinEndTime( \Illuminate\Database\Eloquent\Builder $query )
{
return $query->whereNull('view_end_date')
->orWhere(function($query) {
$query->whereNotNull('view_end_date')
->where('view_end_date','>',\DB::raw('NOW()') );
});
}
表示タイマー内のデータに限定する
$data_loop = $model->withinStartTime()->withinEndTime()->get();