Вход Регистрация
Файл: system/vendor/illuminate/database/Eloquent/Concerns/HasGlobalScopes.php
Строк: 76
<?php

namespace IlluminateDatabaseEloquentConcerns;

use 
Closure;
use 
IlluminateDatabaseEloquentScope;
use 
IlluminateSupportArr;
use 
InvalidArgumentException;

trait 
HasGlobalScopes
{
    
/**
     * Register a new global scope on the model.
     *
     * @param  IlluminateDatabaseEloquentScope|Closure|string  $scope
     * @param  Closure|null  $implementation
     * @return mixed
     *
     * @throws InvalidArgumentException
     */
    
public static function addGlobalScope($scopeClosure $implementation null)
    {
        if (
is_string($scope) && ! is_null($implementation)) {
            return static::
$globalScopes[static::class][$scope] = $implementation;
        } elseif (
$scope instanceof Closure) {
            return static::
$globalScopes[static::class][spl_object_hash($scope)] = $scope;
        } elseif (
$scope instanceof Scope) {
            return static::
$globalScopes[static::class][get_class($scope)] = $scope;
        }

        throw new 
InvalidArgumentException('Global scope must be an instance of Closure or Scope.');
    }

    
/**
     * Determine if a model has a global scope.
     *
     * @param  IlluminateDatabaseEloquentScope|string  $scope
     * @return bool
     */
    
public static function hasGlobalScope($scope)
    {
        return ! 
is_null(static::getGlobalScope($scope));
    }

    
/**
     * Get a global scope registered with the model.
     *
     * @param  IlluminateDatabaseEloquentScope|string  $scope
     * @return IlluminateDatabaseEloquentScope|Closure|null
     */
    
public static function getGlobalScope($scope)
    {
        if (
is_string($scope)) {
            return 
Arr::get(static::$globalScopes, static::class.'.'.$scope);
        }

        return 
Arr::get(
            static::
$globalScopes, static::class.'.'.get_class($scope)
        );
    }

    
/**
     * Get the global scopes for this class instance.
     *
     * @return array
     */
    
public function getGlobalScopes()
    {
        return 
Arr::get(static::$globalScopes, static::class, []);
    }
}
Онлайн: 0
Реклама