App\Models\User::isAdmin must return a relationship instance.
のエラーが出たので対処法を覚書。
エラーが出た時の実際のコード
app/Providers/AuthServiceProvider.php
public function boot()
{
$this->registerPolicies();
Gate::define('admin', function ($user) {
return $user->isAdmin;
});
}
app/Models/User.php
public function isAdmin()
{
return $this->role === self::ROLE_ADMIN;
}
結論
app/Providers/AuthServiceProvider.php
public function boot()
{
$this->registerPolicies();
Gate::define('admin', function ($user) {
return $user->isAdmin(); // ここの()がなかった
});
}
isAdminの()
がないだけでした。