【问题标题】:Laravel force delete failsLaravel 强制删除失败
【发布时间】:2018-03-22 21:36:58
【问题描述】:

我有一个榜样

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 命名空间中。

我哪里出错了?

【问题讨论】:

  • 显示角色模态
  • @Vikash 榜样在问题中
  • "我哪里出错了"。错误:“类名必须是有效的对象或字符串”。关键字:类名。您在给我们的代码中在哪里使用类名?在belongsMany 方法中。所以,这是你的调试 101(还有整个错误堆栈跟踪,它也会给你那个特定的行,利用它)。
  • 可能已经有 Role 类了,把类名改成临时的,试试看。
  • 我发现问题实际上是由 Entrust trait 引起的。现在可以通过在角色模型中添加用户关系。

标签: php laravel laravel-5


【解决方案1】:

试试这样:

class Role extends EntrustRole
{

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

【讨论】:

  • 经过无数次调试,我发现错误是由委托特性引起的。现在我必须在角色模型中添加用户关系。
  • 那很好。我不建议在 Laravel 5.1+ 应用程序中使用 Entrustspatie-laravel-permission & 'JospehSilber/bouncer' 是 Laravel 的 ACL 插件比 Entrust 好得多。
【解决方案2】:

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

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

    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'));

}

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-08-09
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多