2016-01-09 3 views
3

Я создал Anonimus глобальную область в модели пользователей, как показано ниже, чтобы получить только общедоступные пользователей в интерфейсе:Laravel Global Scope Auth

protected static function boot() 
{ 
    parent::boot(); 

    static::addGlobalScope('is_public', function(Builder $builder) { 
     $builder->where('is_public', '=', 1); 
    }); 
} 

Но ... когда мне нужно выполнить вход в бэкэнд мне нужно, конечно, проверить непубличных пользователей, поэтому мне нужно исключить глобальную область.

Возможно ли это, используя AuthController по умолчанию для laravel?

Большое спасибо!

ответ

3

Вам просто нужно создать две Модели - одну без глобальной области (то есть AuthUser), а другую с глобальной областью, которая расширяет первую (то есть пользователь).

Тогда вы можете использовать AuthUser для аутентификации и пользователя везде.

+0

Это хороший способ справиться с этой проблемой, кроме того, он создает разделение между функциями аутентификации с функциональностью пользователей –