授權策略
建立策略類檔案
<?php
namespace App\Policies;
use Illuminate\Auth\Access\HandlesAuthorization;
use App\Models\User;
class UserPolicy
{
use HandlesAuthorization;
public function update(User $currentUser, User $user)
{
return $currentUser->id === $user->id;
}
}
自動授權註冊
<?php
namespace App\Providers;
.
.
.
class AuthServiceProvider extends ServiceProvider
{
.
.
.
public function boot()
{
$this->registerPolicies();
// 修改策略自動發現的邏輯
Gate::guessPolicyNamesUsing(function ($modelClass) {
// 動態返回模型對應的策略名稱,如:// 'App\Models\User' => 'App\Policies\UserPolicy',
return 'App\Policies\\'.class_basename($modelClass).'Policy';
});
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結