如何修复未定义的变量:laravel视图中的用户

时间:2019-07-14 10:31:56

标签: php laravel laravel-5 php-7

我正在使用此软件包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并且将所有用户都放在索引上时,我不知道出什么问题。

关于如何解决此问题的任何想法:?

1 个答案:

答案 0 :(得分:0)

事实证明,我返回的视图是一个$users,而不是重定向到用户索引。

更改自:

     return view('admin.users.index')->with('success','User is deleted');

TO:


return redirect()->route('users.index')->with('success','User is deleted');

解决了整个问题