| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | <?phpnamespace App\Models\Admin;use Illuminate\Database\Eloquent\Model;use Illuminate\Database\Eloquent\Relations\BelongsToMany;class AdminRole extends Model{    protected $table = 'admin_roles';        static $consultantSlug = 'consultant';        protected $fillable = ['name', 'slug','subsite_id'];    public function permissions()    {        return $this->belongsToMany(AdminPermission::class, 'admin_role_permissions', 'role_id', 'permission_id');    }    /**     * A role belongs to many users.     *     * @return BelongsToMany     */    public function administrators() : BelongsToMany    {        $pivotTable = config('admin.database.role_users_table');        $relatedModel = config('admin.database.users_model');        return $this->belongsToMany($relatedModel, $pivotTable, 'role_id', 'user_id');    }    /**     * Detach models from the relationship.     *     * @return void     */    protected static function boot()    {        parent::boot();        static::deleting(function ($model) {            $model->administrators()->detach();            $model->permissions()->detach();        });    }    public static function roleArr()    {        return self::when(get_subsite_id() > 0, function ($query) {            $query->whereIn('subsite_id', [-1,get_subsite_id()]);        })->pluck('name', 'id');    }}
 |