Получение этого действия не разрешено в Laravel - PullRequest
0 голосов
/ 05 февраля 2019

Я получаю Это действие не авторизовано 403, когда я ввожу URL localhost / website / post / 1 / edit.Я хочу защитить редактировать пост от неавторизованного пользователя.

в PostController

public function edit($id)
{
$post=Post::findOrFail($id);
$this->authorize('check_access',$post);
return 'You are authorized';
}

В AuthServiceProvider.php

protected $policies = [
Post::class => 'PostPolicy::class',
];

в PostPolicy.php

public function check_access($post)
{
return Auth::user()->id==$post->user_id;
}

В web.php Route::resource('post','PostController');

Пожалуйста, скажите, где я не прав.Я новичок в Laravel и полностью разочарован.Спасибо

1 Ответ

0 голосов
/ 05 февраля 2019

Ты не должен быть полностью расстроен, мой друг.Вы должны прочитать документацию для лучшего понимания кода, который вы пытаетесь написать.Так что просто следуйте примеру здесь , и вам будет хорошо.Таким образом, вместо доступа к пользователю из Auth охраны вы можете передать его методу в качестве первого параметра.

public function check_access(User $user, Post $post)
{
    return $user->id == $post->user_id;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...