Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsWhereDateClauses.php
Строк: 264
<?php

namespace IlluminateDatabaseConcerns;

use 
IlluminateSupportArr;
use 
IlluminateSupportCarbon;

trait 
BuildsWhereDateClauses
{
    
/**
     * Add a where clause to determine if a "date" column is in the past to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function wherePast($columns)
    {
        return 
$this->wherePastOrFuture($columns, '<', 'and');
    }

    
/**
     * Add a where clause to determine if a "date" column is in the past or now to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function whereNowOrPast($columns)
    {
        return 
$this->wherePastOrFuture($columns, '<=', 'and');
    }

    
/**
     * Add an "or where" clause to determine if a "date" column is in the past to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function orWherePast($columns)
    {
        return 
$this->wherePastOrFuture($columns, '<', 'or');
    }

    
/**
     * Add a where clause to determine if a "date" column is in the past or now to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function orWhereNowOrPast($columns)
    {
        return 
$this->wherePastOrFuture($columns, '<=', 'or');
    }

    
/**
     * Add a where clause to determine if a "date" column is in the future to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function whereFuture($columns)
    {
        return 
$this->wherePastOrFuture($columns, '>', 'and');
    }

    
/**
     * Add a where clause to determine if a "date" column is in the future or now to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function whereNowOrFuture($columns)
    {
        return 
$this->wherePastOrFuture($columns, '>=', 'and');
    }

    
/**
     * Add an "or where" clause to determine if a "date" column is in the future to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function orWhereFuture($columns)
    {
        return 
$this->wherePastOrFuture($columns, '>', 'or');
    }

    
/**
     * Add an "or where" clause to determine if a "date" column is in the future or now to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function orWhereNowOrFuture($columns)
    {
        return 
$this->wherePastOrFuture($columns, '>=', 'or');
    }

    
/**
     * Add an "where" clause to determine if a "date" column is in the past or future.
     *
     * @param  array|string  $columns
     * @param  string  $operator
     * @param  string  $boolean
     * @return $this
     */
    
protected function wherePastOrFuture($columns, $operator, $boolean)
    {
        
$type = 'Basic';
        
$value = Carbon::now();

        foreach (
Arr::wrap($columns) as $column) {
            
$this->wheres[] = ['type' => $type, 'column' => $column, 'boolean' => $boolean, 'operator' => $operator, 'value' => $value];

            
$this->addBinding($value);
        }

        return 
$this;
    }

    
/**
     * Add a "where date" clause to determine if a "date" column is today to the query.
     *
     * @param  array|string  $columns
     * @param  string  $boolean
     * @return $this
     */
    
public function whereToday($columns, $boolean = 'and')
    {
        return 
$this->whereTodayBeforeOrAfter($columns, '=', $boolean);
    }

    
/**
     * Add a "where date" clause to determine if a "date" column is before today.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function whereBeforeToday($columns)
    {
        return 
$this->whereTodayBeforeOrAfter($columns, '<', 'and');
    }

    
/**
     * Add a "where date" clause to determine if a "date" column is today or before to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function whereTodayOrBefore($columns)
    {
        return 
$this->whereTodayBeforeOrAfter($columns, '<=', 'and');
    }

    
/**
     * Add a "where date" clause to determine if a "date" column is after today.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function whereAfterToday($columns)
    {
        return 
$this->whereTodayBeforeOrAfter($columns, '>', 'and');
    }

    
/**
     * Add a "where date" clause to determine if a "date" column is today or after to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function whereTodayOrAfter($columns)
    {
        return 
$this->whereTodayBeforeOrAfter($columns, '>=', 'and');
    }

    
/**
     * Add an "or where date" clause to determine if a "date" column is today to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function orWhereToday($columns)
    {
        return 
$this->whereToday($columns, 'or');
    }

    
/**
     * Add an "or where date" clause to determine if a "date" column is before today.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function orWhereBeforeToday($columns)
    {
        return 
$this->whereTodayBeforeOrAfter($columns, '<', 'or');
    }

    
/**
     * Add an "or where date" clause to determine if a "date" column is today or before to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function orWhereTodayOrBefore($columns)
    {
        return 
$this->whereTodayBeforeOrAfter($columns, '<=', 'or');
    }

    
/**
     * Add an "or where date" clause to determine if a "date" column is after today.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function orWhereAfterToday($columns)
    {
        return 
$this->whereTodayBeforeOrAfter($columns, '>', 'or');
    }

    
/**
     * Add an "or where date" clause to determine if a "date" column is today or after to the query.
     *
     * @param  array|string  $columns
     * @return $this
     */
    
public function orWhereTodayOrAfter($columns)
    {
        return 
$this->whereTodayBeforeOrAfter($columns, '>=', 'or');
    }

    
/**
     * Add a "where date" clause to determine if a "date" column is today or after to the query.
     *
     * @param  array|string  $columns
     * @param  string  $operator
     * @param  string  $boolean
     * @return $this
     */
    
protected function whereTodayBeforeOrAfter($columns, $operator, $boolean)
    {
        
$value = Carbon::today()->format('Y-m-d');

        foreach (
Arr::wrap($columns) as $column) {
            
$this->addDateBasedWhere('Date', $column, $operator, $value, $boolean);
        }

        return 
$this;
    }
}
Онлайн: 2
Реклама