Я хочу использовать политики в конструкторе каждой модели.Я использую пользовательский контроллер в качестве 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, никогда не вызывается.