0

일부 모델의 경우 로그인 한 사용자가 최고 관리자가 아닌 경우 전역 범위를 적용해야합니다.Laravel 5.5의 사용자 역할을 기반으로 글로벌 범위 적용

<?php 

namespace App; 

use Auth; 
use App\Scopes\RoleScope; 
use Illuminate\Database\Eloquent\Model; 

class MyModel extends Model 
{ 
    protected static function boot() 
    { 
     parent::boot(); 

     if(Auth::check() && ! Auth::user()->isSuperAdmin()){ 
      static::addGlobalScope(new RoleScope); 
     } 
    } 
} 

SCOP이 적용되지 않습니다 : 모델의 boot() 방법 나는 이런 식으로 뭔가를 시도! 여기서 내가 뭘 잘못 했니? 사용자 역할을 기반으로 범위를 적용하는 목표를 어떻게 달성 할 수 있습니까? 감사합니다

+0

위 코드는 사용자가 슈퍼 관리자가 아닌 범위에 적용됩니다. –

답변

0

Eloquent 모델의 boot 메소드에서 현재 인증 된 사용자에게 액세스 할 수 없습니다. 인증 미들웨어는 아직 실행되지 않았습니다.

RoleScopeapply 방법으로 수퍼 관리자 확인을 수행하면됩니다.