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

birdietorerik's avatar

Route [dashboard] not defined

Hi! What is the issue here, when Route->dashboard is called from my selectrole view file

@extends('layouts.app')
@section('content')
<div class="wrapper wrapper-full-page">
    <div class="page-header login-page header-filter">
        <div class="container">
            <div class="row">
                <div class="col-lg-4 col-md-6 col-sm-8 ml-auto mr-auto">
                    <form class="form" method="POST" action="{{ route('login') }}">
                        @csrf
                        <div class="card card-login">
                            <div class="card-header card-header-primary text-center">
                                <h4 class="card-title">Select rute<img src="{{asset('img/logoEasyflowdark.png')}}" style="width:220px;hight:150px"></h4>
                            </div>

                            @if(session('status'))
                                <div class="card-body" style="padding: .9375rem 20px;">
                                    <p class="alert alert-info">
                                        {{ session('status') }}
                                    </p>
                                </div>
                            @endif
                            <div class="card-body">
                                <div class="bmd-form-group">
                                    <div class="input-group">
                                        <div class="input-group-prepend">
                                            <span class="input-group-text">
                                                <i class="material-icons">email</i>
                                            </span>
                                        </div>
                                        <input name="email" type="email" class="form-control" placeholder="{{ __('global.login_email') }}..." value="{{ old('email') }}" required autocomplete="email" autofocus>
                                    </div>
                                    @error('email')
                                        <div class="error" for="email">
                                            {{ $message }}
                                        </div>
                                    @enderror
                                </div>
                                <div class="bmd-form-group">
                                    <div class="input-group">
                                        <div class="input-group-prepend">
                                            <span class="input-group-text">
                                                <i class="material-icons">lock_outline</i>
                                            </span>
                                        </div>
                                        <input name="password" type="password" class="form-control" placeholder="{{ __('global.login_password') }}..." autocomplete="current-password" required>
                                    </div>
                                    @error('password')
                                        <div class="error" for="email">
                                            {{ $message }}
                                        </div>
                                    @enderror
                                </div>
                                <div class="form-check">
                                    <label class="form-check-label">
                                        <input type="checkbox" name="remember" class="form-check-input">
                                        <span class="form-check-sign"><span class="check"></span></span>
                                        Remember me
                                    </label>
                                </div>
                            </div>
                            <div class="card-footer justify-content-center flex-column">
                                <button type="submit" class="btn btn-round btn-primary">
                                    {{ __('global.login') }}
                                </button>

                                <div class="d-flex justify-content-between">
                                    @if(Route::has('password.request'))
                                        <a class="btn btn-link btn-primary" href="{{ route('password.request') }}">
                                            {{ __('global.forgot_password') }}
                                        </a>
                                    @endif

                                    @if(Route::has('register'))
                                        <a class="btn btn-link btn-primary" href="{{ route('register') }}">
                                            {{ __('global.register') }}
                                        </a>
                                    @endif
                                </div>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

<style>
    input:-internal-autofill-selected {
     background-color: white !important;
}
</style>    
@endsection

This is calling the controller ->selectroleController

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Models\User;
use App\Models\Role;
use Session;
use Illuminate\Validation\Rule;
use App\Http\Resources\Admin\RoleResource;
use App\Http\Requests\StoreRoleRequest;
use App\Http\Requests\UpdateRoleRequest;

class SelectroleController extends Controller
{
    public function index()
    {
        
        $userid = auth()->user()->id;
        $roller = Role::getroles($userid);

        return view('roller.index', compact('roller'));
   
    }

    public function getcurrentRole()
    {
      return auth()->user()->role_id;
    } 

    public function selectrole(Request $request)
    {
        // Get selected role and startlist 
        $role_id = $request->valgrolle;

        // Store default role on user
        $storedefrole = User::storeDefRoleUser($role_id);
        
        switch ($role_id) {
            case 1:
              $this->redirectTo = 'dashboard';
              break;
            case 2:
              $this->redirectTo = 'dashboard';
              break;
            case 3:
              $this->redirectTo = 'dashboard';
              break;
            case 4:
              $this->redirectTo = 'dashboard';
              break;
            case 5:
              $this->redirectTo = 'starter';
              break;
            case 6:
              $this->redirectTo = 'marshal';
              break;
            case 7:
              $this->redirectTo = 'dashboard';
              break;
            case 8:
              $this->redirectTo = 'dashboard';
              break;
            case 9:
              $this->redirectTo = 'player';
              break;
            case 10:
                $this->redirectTo = 'tester';
                break;  
            default:
               $this->redirectTo = 'player';
          }

          
          return redirect()->route($this->redirectTo);
    }

    
}

I have selected Superadmin -> $role_id = 4 So it calls $this->redirectTo = 'dashboard';

Here is my route file

<?php

use App\Http\Controllers\UserController;
use App\Models\Role;
use App\Models\User;


Route::redirect('/', '/login');
Route::redirect('/dashboard', '/admin/dashboard');
Route::redirect('/player', '/admin/player');
Route::redirect('/marshal', '/admin/marshal');
Route::redirect('/starter', '/admin/starter');
Route::redirect('/tester', '/admin/tester');

// Check if users is online or offline
Route::get('/check', [UserController::class, 'userOnlineStatus']);


Auth::routes(['register' => true]);

Route::group([
    'prefix'     => 'admin',
    'as'         => 'admin.',
    'namespace'  => 'Admin',
    'middleware' => ['auth'],
], function () {
    Route::view('/{any?}', 'layouts.admin.app')->name('dashboard')->where('any', '.*');
});

 // Dashboard - Federation
//Route::get('testing', [ChatwalkiController::class, 'index']);

// Roller
Route::get('/roller','SelectroleController@index')->name('roller');
Route::post('/roller','SelectroleController@selectrole');

Get this error message:

Symfony\Component\Routing\Exception\RouteNotFoundException
Route [dashboard] not defined.

Why dosent it calls -> Route::redirect('/dashboard', '/admin/dashboard');???

0 likes
4 replies
tykus's avatar

The Route is named admin.dashboard not dashboard. A Route name is not the same as the route URI.

If you wanted to use the URI, then the redirect should use to, not route method:

return redirect()->to($this->redirectTo);
tykus's avatar
tykus
Best Answer
Level 104

@birdietorerik are you wanting to use the Route name or the Route URI for redirection?

Please or to participate in this conversation.