Задать вопрос
@gaalev

Почему не работает Laravel policy?

При использовании $this->authorize('index', Post::class) возвращается страница 403, а при Post::find(1)->can('index', Post::class) возвращается ошибка Call to undefined method App\Models\Post::can()

web.php:
Route::get('/', [UserController::class, 'index']);
UserConroller.php:
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Post;

class UserController extends Controller
{
    public function index(Request $request)
    {
        $this->authorize('index', Post::class);
    }
}

PostPolicy.php:
namespace App\Policies;

use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;

class PostPolicy
{
    use HandlesAuthorization;

    public function index()
    {
        return true;
    }
}

AuthServiceProvider.php:
protected $policies = [
     Post::class => PostPolicy::class,
];
  • Вопрос задан
  • 229 просмотров
Подписаться 1 Простой 10 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽