首页 文章

Laravel强制删除失败

提问于
浏览
0

我有一个角色模型

class Role extends EntrustRole
{
  public function permissions()
  {
    return $this->belongsToMany('App\Permission', Config::get('entrust::permission_role_table'));
  }
}

现在我想删除某个角色

$role = Role::where("display_name",'=', $request->route("role"))->first();
$role->delete() //fails
$role->forceDelete() //also fails

以上返回错误

消息www / html / laravel / keybrands / vendor / laravel / framework / src / Illuminate / Database / Eloquent / Concerns / HasRelationships.php“”类名必须是有效对象或字符串“

权限模型位于App命名空间中 .

哪里可能出错?

3 回答

  • 2

    试试这样:

    class Role extends EntrustRole
    {
    
        public function permissions()
        {
            return $this->belongsToMany(Permission::class, config('entrust::permission_role_table'));
        }
    }
    
  • 0

    检查堆栈跟踪显示错误是由委托特征引起的 .

    我已经通过添加到角色模型来解决这个问题 .

    public function users()
    {
        return $this->belongsToMany(Config::get('auth.providers.users.model'),Config::get('entrust.role_user_table'),Config::get('entrust.role_foreign_key'),Config::get('entrust.user_foreign_key'));
    
    }
    
  • 0

    config/auth.php 中定义用户模型:

    <?php
    
    return [
        /*
        |--------------------------------------------------------------------------
        | Defining Model
        |--------------------------------------------------------------------------
        */
        'model' => App\User::class,
    ];
    

相关问题