【发布时间】:2022-11-03 18:57:48
【问题描述】:
我在使用 Auth::user()->can() 确定权限时遇到问题。 例如 Auth::user()->can('trunk.index) 总是返回错误;
但我有一个问题。 如果我转储 $user->getPermissionsViaRoles(); ,我会得到一个很大的结果。
我正在使用不同的表 user_view 表。 根据它,我在 Auth.php 文件中进行了更改。并且登录工作正常。
'providers' => [
'users' => [
'driver' => 'self-eloquent',
'model' => App\Models\UserView::class,
]
],
但是当我尝试通过 Auth::user()->can('trunk.index) 检查权限时,它会在错误下方给出错误。
Call to undefined method App\\Models\\UserView::can()
下面是我的 UserView 模型代码。
<?php
namespace App\Models;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Support\Facades\Hash;
use Spatie\Permission\Traits\HasRoles;
use Laravel\Lumen\Auth\Authorizable;
use Laravel\Sanctum\HasApiTokens;
class UserView extends Model implements AuthenticatableContract
{
use Authenticatable;
use HasFactory;
use HasRoles;
use HasApiTokens;
protected $table = 'user_view';
protected $primaryKey = "user_id";
protected $fillable = [
'username', 'password',
];
protected $guarded = [];
public function getAuthPassword()
{
return ['password' => $this->attributes['user_password']];
}
// public function can($abilities, $arguments = []) {
// }
}
如果我遗漏了什么,请帮助我。谢谢你。
【问题讨论】:
标签: laravel spatie-ssh