Что вам нужно для его авторизации policy
Создайте политику, запустив: php artisan make:policy PostPolicy
Затем зарегистрируйте созданную политику в поставщике услуг:
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
Post::class => PostPolicy::class,
];
/**
* Register any application authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
//
}
После регистрации политики вы можете добавлять методы для каждого действия, которое она авторизует.Например, давайте определим метод обновления в нашей PostPolicy, который определяет, может ли данный пользователь обновить данный экземпляр Post.
Метод обновления получит экземпляр User
и Post
в качестве аргументов, идолжен вернуть true or false
, указывая, авторизован ли пользователь для обновления данного сообщения.Итак, для этого примера давайте проверим, что идентификатор пользователя соответствует user_id
в сообщении:
<?php
namespace App\Policies;
use App\User;
use App\Post;
class PostPolicy
{
/**
* Determine if the given post can be updated by the user.
*
* @param \App\User $user
* @param \App\Post $post
* @return bool
*/
public function update(User $user, Post $post)
{
return $user->id === $post->user_id;
}
}