Laravel 5.3 Entrust - 类名必须是有效对象或字符串

时间:2016-11-22 10:51:15

标签: php laravel entrust

我目前正在为我的角色工作delete

每当我尝试删除时:

Class name must be a valid object or a string

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

将此功能添加到Role.php模型

<?php
namespace App;

use Illuminate\Support\Facades\Config;

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

希望这有帮助!

答案 1 :(得分:0)

使用config/auth.php更新'model' => App\Users::class文件,因为vendor/zizaco/entrust/src/Entrust/Traits/EntrustRoleTrait.php指向$ this-&gt; belongsToMany()方法中的Config::get('auth.model')

答案 2 :(得分:0)

@TiếnĐạo说出解决这个问题的最佳方法。但是如果你想要代码简单......

use App\User;

class Role extends EntrustRole
{
   /**
   * Many-to-Many relations with the user model.
   *
   * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
   */
   public function users()
   {
      return $this->belongsToMany(User::class);
   }
}