Laravel Использование политики в базе и модели пользовательских контроллеров - PullRequest
0 голосов
/ 17 февраля 2019

Я хочу использовать политики в конструкторе каждой модели.Я использую пользовательский контроллер в качестве BaseController и пользовательскую модель в качестве BaseModel.Я пытаюсь использовать метод 'can', когда модель создается в BaseModel.

Я уже зарегистрировал политику в AuthServiceProvider.Я пробую метод 'can' в конструкторе basemodel и в методе all в basecontroller, но он всегда возвращает false и не выполняет мое правило политики.

BaseController.php

public function all(Request $request){
   try {
            $user = Auth::user();
            if($user->can('view', ModelA::class)){
                dump('PASS TEST'); 
       }

BaseModel.php

public function __construct(array $attributes = []){
    parent::__construct($attributes);
    // HERE I WANT THE TEST POLICY

ModelAPolicy.php

class ModelAPolicy{

use HandlesAuthorization;

public function view(User $user){

        dump("In Policy view");
        return true;
    }
}

Мой BaseController вызывает область действия из запрошенной модели, и я хочу проверить в методе построения политику.Но моя политика, прочитанная в ModelAPolicy, никогда не вызывается.

...