Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Farirai's avatar

There is no role named `5` for guard `web`.

I am spatie for rolwes and permissions but when creating a new using while assigning thjem a role i get error

the error

There is no role named `5` for guard `web`.

my controller

<?php

namespace App\Http\Controllers;

use App\Http\Requests\UserStoreRequest;
use App\Http\Requests\UserUpdaterequest;
use Illuminate\Support\Collection;
use App\Models\User;
use ProtoneMedia\Splade\Facades\Toast;
use ProtoneMedia\Splade\SpladeTable;
use Spatie\Permission\Models\Role;
use Spatie\QueryBuilder\AllowedFilter;
use Spatie\QueryBuilder\QueryBuilder;


class UsersController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
        $globalSearch = AllowedFilter::callback('global', function (
            $query,
            $value
        ) {
            $query->where(function ($query) use ($value) {
                Collection::wrap($value)->each(function ($value) use ($query) {
                    $query
                        ->orWhere('name', 'LIKE', "%$value%")
                        ->orWhere('email', 'LIKE', "%$value%");
                });
            });
        });

        $users = QueryBuilder::for(User::class)
            ->defaultSort('name')
            ->allowedFilters([
                'id',
                'name',
                'email',
                'created_at',
                $globalSearch,
            ])
            ->allowedSorts(['id', 'name', 'email', 'created_at'])
            ->paginate()
            ->withQueryString();

        return view('users.index', [
            'users' => SpladeTable::for($users)
                ->defaultSort('name')
                ->withGlobalSearch()
                ->column('id', sortable: true, searchable: true)
                ->column(
                    'name',
                    canBeHidden: false,
                    sortable: true,
                    searchable: true
                )
                ->column('email', sortable: true, searchable: true)
                ->column('role', sortable: true, searchable: true)
                ->column('created_at', sortable: true, searchable: true)
                ->column('action')
                ->rowLink(fn($user) => route('users.show', $user->id)),
        ]);
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        $roles = Role::all();

        return view('users.create', [
            'roles' => $roles,
        ]);
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(UserStoreRequest $request)
    {
        $user = User::create($request->validated());

        $user->syncRoles($request->roles, []);


        Toast::title('Success!')
            ->message('User Created Successfully!')
            ->success()
            ->info()
            ->leftTop()
            ->backdrop()
            ->autoDismiss(3);
        return redirect()->route('users.index');
    }

    /**
     * Display the specified resource.
     */
    public function show(User $user)
    {
        return view('users.show', compact('user'));
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(User $user)
    {
        $roles = Role::all();

        return view('users.edit', [
            'user' => $user,
            'roles' => $roles,
        ]);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(UserUpdateRequest $request, User $user)
    {
        $data = $request->validated();

        if (empty($data['password'])) {
            unset($data['password']);
        }

        $user->update($data);

        $user->syncRoles($request->roles, []);


        Toast::title('Success!')
            ->message('User Updated Successfully!')
            ->success()
            ->leftTop()
            ->info()
            ->backdrop()
            ->autoDismiss(3);
        return redirect()->route('users.index');
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(User $user)
    {
        User::destroy($user);

        //        $user->revokePermissionTo($user->permissions);

        Toast::title('warning!')
            ->message('User Deleted Successfully!')
            ->success()
            ->leftTop()
            ->backdrop()
            ->autoDismiss(3);
        return redirect()->route('users.index');
    }
}

0 likes
1 reply

Please or to participate in this conversation.