在Zizaco /委托中删除角色的问题

时间:2016-06-20 08:14:55

标签: laravel entrust

我试图删除一个角色

$role = Role::findOrFail(1);
$role->delete();

我收到以下错误

FatalErrorException in Model.php line 945:
Class name must be a valid object or a string
在第86行的vendor / zizaco / entrust / src / commands / MigrationCommand.php中

$usersTable  = Config::get('auth.providers.users.table');
$userModel   = Config::get('auth.providers.users.model');

角色模型类

namespace App\Models;

use Zizaco\Entrust\EntrustRole;

class Role extends EntrustRole
{
       protected $fillable =  ['name', 'display_name', 'isActive','description', 'created_at', 'updated_at'];

}

3 个答案:

答案 0 :(得分:4)

我认为这是问题所在:

找到文件: 供应商/ zizaco /委托/ SRC /委托/性状/ EntrustRoleTrait.php

替换

第51行: ... Config::get('auth.model') ...

第51行: ... Config::get('auth.providers.users.model') ...

答案 1 :(得分:0)

更新核心软件包中的任何内容都是不错的做法,因为如果您更新软件包,此更改将被替换,而是通过在App\Role.php

中添加此更改来覆盖该函数
/**
 * Many-to-Many relations with the user model.
 *
 * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
 */
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'));
   // return $this->belongsToMany(Config::get('auth.model'), Config::get('entrust.role_user_table'));
}

答案 2 :(得分:0)

我同意@Tarunn。如果你想要代码简单....

use App\User;

/**
* Many-to-Many relations with the user model.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/

public function users()
{
   return $this->belongsToMany(User::class);
}