我需要做的是扩展 Spatie 权限包角色模型的所有功能,但为派生模型使用不同的表。
现在我有一个模型 SubscriptionPackage ,我想模拟角色的行为,以便可以为其分配权限,进而可以将此模型分配给用户。但我也想保持角色模型完整。
我尝试扩展 Yes,但是当我创建一个新的 SubscriptionPackage 时,尽管在派生模型中指定了表,但新记录是在角色表而不是 subscription_packages 表中创建的。如下所示
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use App\Models\Permission; // This extends from Spatie\Permission\Models\Permission
use Spatie\Permission\Models\Role as SpatieRole;
class SubscriptionPackage extends SpatieRole
{
//
protected $guarded = ['id'];
protected $table = 'subscription_packages';
/**
* The permissions that belong to the package.
*/
public function packagePermissions()
{
return $this->belongsToMany(Permission::class);
}
}
使用上面的代码,当我创建一个新的 SubscriptionPackage 时,记录应该被插入到 subscription_packages 表中,但在这种情况下,它会进入角色表。任何有关如何解决此问题的指示都将受到高度赞赏。