我正在使用此软件包spatie-laravel-permission
向我的网站添加角色和权限。
在管理控制台中,我提取了所有用户并设置了删除方法。
public function user_destroy ($id){
$user_delete= User::findOrFail($id);
$user_delete->removeRole($user_delete->getRoleNames());
$user_delete->delete();
return view('admin.users.index')->with('success','User is deleted');
}
因此,使用上面的代码不会删除用户及其角色。
我收到此错误:
Return value of App\User::getStoredRole() must implement interface Spatie\Permission\Contracts\Role, instance of Illuminate\Support\Collection returned
我尝试使用PHP detach():
$user_delete->roles()->detach();
它实际上正在工作,但出现此错误:
Undefined variable: users (View: resources\views\admin\users\index.blade.php)
PHP $ users是在索引视图中定义的,如下所示:
public function mainUsers(){
$users = User::latest()->paginate(5);
return view('admin.users.index',compact('users'));
}
当我使用PHP detach()
定义$ users并且将所有用户都放在索引上时,我不知道出什么问题。
关于如何解决此问题的任何想法:?
答案 0 :(得分:0)
事实证明,我返回的视图是一个$users
,而不是重定向到用户索引。
更改自:
return view('admin.users.index')->with('success','User is deleted');
TO:
return redirect()->route('users.index')->with('success','User is deleted');
解决了整个问题