【发布时间】: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 引起的。现在可以通过在角色模型中添加用户关系。