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

birdietorerik's avatar

Middelware dosent trigger

Hi!

Have this strange thing, i am using Middelware when user login to system But it dosent use my middelware ???

LoginController (working fine)

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo;
    public function redirectTo()
    {
        //$rollen = Auth()->user();
        $redirects = [
            'Superadmin' => '/admin/dashboard',
            'player' => '/admin/player',
            'EasyflowAdmin' => '/admin/easyflowadmin',
            'Judge' => '/admin/judge',
            'Marshal' => '/admin/marshal',
            'Starts' => '/admin/starts',
            'Federation' => '/admin/federation',
            'Admin' => '/admin/admin',
            'Trackcrew' => '/admin/trackcrew'

        ];

        $roles = Auth()->user()->roles->map->title;

        foreach ($redirects as $role => $url) {
            if ($roles->contains($role)) {
                return $url;
            }
        }
        return '/login';
         
    } 

    /**
     * Create a new controller instance.
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    /**
     * The user has logged out of the application.
     *
     * @return mixed
     */
    protected function loggedOut(Request $request)
    {
        if ($request->wantsJson()) {
            return response(null, Response::HTTP_NO_CONTENT);
        }
    }
}

Kernel.php

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        // \App\Http\Middleware\TrustHosts::class,
        \App\Http\Middleware\TrustProxies::class,
        \Fruitcake\Cors\HandleCors::class,
        \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    ];

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \App\Http\Middleware\AuthGates::class,
            \App\Http\Middleware\LastUserActivity::class,
            // \App\Http\Middleware\SetPreferredLocale::class,
        ],

        'api' => [
            \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
            // 'throttle:60,1',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \App\Http\Middleware\AuthGates::class,
            \App\Http\Middleware\SetPreferredLocale::class,
        ],
    ];

    /**
     * The application's route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth'             => \App\Http\Middleware\Authenticate::class,
        'auth.basic'       => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'cache.headers'    => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can'              => \Illuminate\Auth\Middleware\Authorize::class,
        'guest'            => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
        'signed'           => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle'         => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified'         => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        'admin'            => \App\Http\Middleware\Admin::class,
        'player'           => \App\Http\Middleware\Player::class,
        'trackcrew'        => \App\Http\Middleware\Trackcrew::class,
        'superadmin'       => \App\Http\Middleware\Superadmin::class,
        'federation'       => \App\Http\Middleware\Federation::class,
        'starts'           => \App\Http\Middleware\Starts::class,
        'marshal'          => \App\Http\Middleware\Marshal::class,
        'judge'            => \App\Http\Middleware\Judge::class,
        'easyflowAdmin'    => \App\Http\Middleware\EasyflowAdmin::class,
        'dashboard'        => \App\Http\Middleware\Dashboard::class,


    ];
}

Player.php ->middelware

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class Player
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {

        $currentrole = Auth()->user()->roles->map->title;
        
        if (!Auth::check()) {
            return redirect()->route('login');
        }

        if ($currentrole == 'Superadmin') {
            return redirect()->route('dashboard');
        }

        if ($currentrole == 'player') {
            return redirect()->route('player');
        }

        return redirect()->route('login');

    }
}

Dashboard.php -> middelware

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Auth;

class Dashboard
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        $currentrole = Auth()->user()->roles->map->title;

        if (!Auth::check()) {
            return redirect()->route('login');
        }

        if ($currentrole == 'Superadmin') {
            return $next($request);
        }

        if ($currentrole == 'player') {
            return redirect()->route('player');
        }

        return redirect()->route('login');
    }
}

Route files:

api.php routes

<?php

Route::group(['prefix' => 'v1', 'as' => 'api.', 'namespace' => 'Api\V1\Admin', 'middleware' => ['auth:sanctum']], function () {
    // Abilities
    Route::apiResource('abilities', 'AbilitiesController', ['only' => ['index']]);

    // Locales
    Route::get('locales/languages', 'LocalesController@languages')->name('locales.languages');
    Route::get('locales/messages', 'LocalesController@messages')->name('locales.messages');

    // Permissions
    Route::resource('permissions', 'PermissionsApiController');
    
    // Roles
    Route::resource('roles', 'RolesApiController');

    // Users
    Route::resource('users', 'UsersApiController');

    // Content Category
    Route::resource('content-categories', 'ContentCategoryApiController');

    // Content Tag
    Route::resource('content-tags', 'ContentTagApiController');

    // Content Page
    Route::post('content-pages/media', 'ContentPageApiController@storeMedia')->name('content-pages.storeMedia');
    Route::resource('content-pages', 'ContentPageApiController');

    // Country
    Route::resource('countries', 'CountryApiController');

    // Golfclub
    Route::resource('golfclubs', 'GolfclubApiController');

    // Grad
    Route::resource('grads', 'GradApiController');

    // Dommereb
    Route::resource('dommerebs', 'DommerebApiController');

    // Startliste
    Route::resource('startlistes', 'StartlisteApiController');

    // Lokaleregler
    Route::resource('lokalereglers', 'LokalereglerApiController');

    // Walkie Talkie
    Route::apiResource('walkie-talkies', 'WalkieTalkieApiController', ['only' => ['index']]);
    // Location GPS
    Route::apiResource('places', 'LocationController', ['only' => ['index']]);
    // Chat
    Route::apiResource('chats', 'ChatApiController', ['only' => ['index']]);

    // Settings
    Route::apiResource('settings', 'SettingsApiController', ['only' => ['index']]);

    // Testing
    Route::apiResource('testings', 'TestingApiController', ['only' => ['index']]);


    // Turnements
    Route::resource('turnements', 'TurnementsApiController');

     // Flightdata
    Route::resource('Flightdata', 'FlightdataApiController');

     // Gpstrackerclub
    Route::resource('gpstrackerclubs', 'GpstrackerclubApiController');

    // Testing
    Route::apiResource('timeusedflights', 'TimeusedflightsApiController', ['only' => ['index']]);

    // Golfclubfeedback
    Route::resource('golfclubfeedbacks', 'GolfclubfeedbackApiController');

    // Investor
    Route::post('investors/media', 'InvestorApiController@storeMedia')->name('investors.storeMedia');
    Route::resource('investors', 'InvestorApiController');

    // Profile Index
   // Route::apiResource('profilen', 'ProfilesApiController', ['only' => ['index']]);
    Route::resource('profilen', 'ProfilesApiController');

    Route::resource('Timer','Timetracking');

     // Configuration
     Route::resource('configurations', 'ConfigurationApiController');
    
});

web.php routes

<?php

Route::redirect('/', '/login');
//Route::redirect('/dashboard', '/admin/dashboard');

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

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

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

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

// Dashboards
Auth::routes();
// Dasboard - superadmin
Route::get('dashboard', 'DashboardApiController@index')->name('dashboard')->middleware('dashboard');

// Dashboard - admin
Route::get('admin', 'AdminApiController@index')->name('admin')->middleware('admin');;

// Dashboard - player
Route::get('player', 'PlayerApiController@index')->name('player')->middleware('player');;

// Dashboard - Trackcrew
Route::get('trackcrew', 'TrackcrewApiController@index')->name('trackcrew')->middleware('trackcrew');;

// Dashboard - Superadmin
Route::get('superadmin', 'SuperadminApiController@index')->name('superadmin')->middleware('superadmin');;

// Dashboard - Federation
Route::get('federation', 'FederationApiController@index')->name('federation')->middleware('federation');;

// Dashboard - Starter
Route::get('starts', 'StartsApiController@index')->name('starts')->middleware('starts');;

// Dashboard - Marshal
Route::get('marshal', 'MarshalApiController@index')->name('marshal')->middleware('marshal');;

// Dashboard - Judge
Route::get('judge', 'JudgeApiController@index')->name('judge')->middleware('judge');;

// Dashboard - Easyflowadmin
Route::get('easyflowAdmin', 'EasyflowAdminApiController@index')->name('easyflowAdmin')->middleware('easyflowAdmin');

When i try to login with role -> player it show player dashboard. OK But if i try dashboard, it supose to redirect to player dashboard. But it dosent do that ?????

0 likes
39 replies
Sinnbeck's avatar

So where do you assign these middleware?

Sinnbeck's avatar

@birdietorerik ah so it's this specific route only?

Route::get('player', 'PlayerApiController@index')->name('player')->middleware('player');; 
Sinnbeck's avatar

@birdietorerik so when the user goes to the /player route you want to redirect to the /player route? (if they have the player role of course)

Snapey's avatar

@Sinnbeck aka too many redirects

if you hit the player route and you are player then the middleware should just let you through, not redirect

also, your middleware expects to get the users role but AFTER checks they are logged in

birdietorerik's avatar

@Snapey Hi!

Dosent follow you here ?

Have tested if user role is player. It dosent use my middelware ?

Start of my question:

Have this strange thing, i am using Middelware when user login to system But it dosent use my middelware ???

Sinnbeck's avatar

@birdietorerik you can easily test if it uses it. Just add dd('hit'); as the first thing in the handle method and go to /player

birdietorerik's avatar

@Sinnbeck Hi!

Tryed to add dd("TEST MIDDELWARE"); in my Player.php -> middelware

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class Player
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {

        dd("TEST MIDDELWARE"); 
        
        $currentrole = Auth()->user()->roles->map->title;
        
        if (!Auth::check()) {
            return redirect()->route('login');
        }

        if ($currentrole == 'Superadmin') {
            return redirect()->route('dashboard');
        }

        if ($currentrole == 'player') {
            return redirect()->route('player');
        }

        return redirect()->route('login');

    }
}

But dosent show -> TEST MIDDELWARE

Snapey's avatar

probably good it does not use it as it will not work

Snapey's avatar

@birdietorerik your middleware should

  • check the user is authenticated first
  • if the user is allowed to pass then return next middleware, not a redirect
birdietorerik's avatar

@Snapey Check if user is authenticated is done in controller. But must do this in my middelware to ?

if the user is allowed to pass then return next middleware, not a redirect Please show my, dosent follow you . sorry

Snapey's avatar

@birdietorerik This line will blow up if the user is not authenticated

$currentrole = Auth()->user()->roles->map->title;

Middleware in this context should add like a gate. You always redirect which means the user can never reach the /player route as they would be redirected infinitely.

Suggest;

    public function handle(Request $request, Closure $next)
    { 
        if (!Auth::check()) {
            return redirect()->route('login');
        }

        $currentrole = Auth()->user()->roles->map->title;

        if ($currentrole == 'player') {
            return $next($request);
        }

       // User is authenticated but does not have the role. 
       // Either redirect to somewhere else or return a forbidden error
       
        abort(403, 'Access denied');

    }
birdietorerik's avatar

@Snapey Hi! This is a better way, Thank you.

But still have the same issue, it doent execute my middelware ???

Think it somthing to do with routes files ?

api.php routes

<?php

Route::group(['prefix' => 'v1', 'as' => 'api.', 'namespace' => 'Api\V1\Admin', 'middleware' => ['auth:sanctum']], function () {
    // Abilities
    Route::apiResource('abilities', 'AbilitiesController', ['only' => ['index']]);

    // Locales
    Route::get('locales/languages', 'LocalesController@languages')->name('locales.languages');
    Route::get('locales/messages', 'LocalesController@messages')->name('locales.messages');

    // Permissions
    Route::resource('permissions', 'PermissionsApiController');
    
    // Roles
    Route::resource('roles', 'RolesApiController');

    // Users
    Route::resource('users', 'UsersApiController');

    // Content Category
    Route::resource('content-categories', 'ContentCategoryApiController');

    // Content Tag
    Route::resource('content-tags', 'ContentTagApiController');

    // Content Page
    Route::post('content-pages/media', 'ContentPageApiController@storeMedia')->name('content-pages.storeMedia');
    Route::resource('content-pages', 'ContentPageApiController');

    // Country
    Route::resource('countries', 'CountryApiController');

    // Golfclub
    Route::resource('golfclubs', 'GolfclubApiController');

    // Grad
    Route::resource('grads', 'GradApiController');

    // Dommereb
    Route::resource('dommerebs', 'DommerebApiController');

    // Startliste
    Route::resource('startlistes', 'StartlisteApiController');

    // Lokaleregler
    Route::resource('lokalereglers', 'LokalereglerApiController');

    // Walkie Talkie
    Route::apiResource('walkie-talkies', 'WalkieTalkieApiController', ['only' => ['index']]);
    // Location GPS
    Route::apiResource('places', 'LocationController', ['only' => ['index']]);
    // Chat
    Route::apiResource('chats', 'ChatApiController', ['only' => ['index']]);

    // Settings
    Route::apiResource('settings', 'SettingsApiController', ['only' => ['index']]);

    // Testing
    Route::apiResource('testings', 'TestingApiController', ['only' => ['index']]);


    // Turnements
    Route::resource('turnements', 'TurnementsApiController');

     // Flightdata
    Route::resource('Flightdata', 'FlightdataApiController');

     // Gpstrackerclub
    Route::resource('gpstrackerclubs', 'GpstrackerclubApiController');

    // Testing
    Route::apiResource('timeusedflights', 'TimeusedflightsApiController', ['only' => ['index']]);

    // Golfclubfeedback
    Route::resource('golfclubfeedbacks', 'GolfclubfeedbackApiController');

    // Investor
    Route::post('investors/media', 'InvestorApiController@storeMedia')->name('investors.storeMedia');
    Route::resource('investors', 'InvestorApiController');

    // Profile Index
   // Route::apiResource('profilen', 'ProfilesApiController', ['only' => ['index']]);
    Route::resource('profilen', 'ProfilesApiController');

    Route::resource('Timer','Timetracking');

     // Configuration
     Route::resource('configurations', 'ConfigurationApiController');
    

});

web.php -> route

<?php

Route::redirect('/', '/login');
//Route::redirect('/dashboard', '/admin/dashboard');

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

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

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

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

// Dashboards
Auth::routes();
// Dasboard - superadmin
Route::get('dashboard', 'DashboardApiController@index')->name('dashboard')->middleware('dashboard');

// Dashboard - admin
Route::get('admin', 'AdminApiController@index')->name('admin')->middleware('admin');;

// Dashboard - player
Route::get('player', 'PlayerApiController@index')->name('player')->middleware('player');;

// Dashboard - Trackcrew
Route::get('trackcrew', 'TrackcrewApiController@index')->name('trackcrew')->middleware('trackcrew');;

// Dashboard - Superadmin
Route::get('superadmin', 'SuperadminApiController@index')->name('superadmin')->middleware('superadmin');;

// Dashboard - Federation
Route::get('federation', 'FederationApiController@index')->name('federation')->middleware('federation');;

// Dashboard - Starter
Route::get('starts', 'StartsApiController@index')->name('starts')->middleware('starts');;

// Dashboard - Marshal
Route::get('marshal', 'MarshalApiController@index')->name('marshal')->middleware('marshal');;

// Dashboard - Judge
Route::get('judge', 'JudgeApiController@index')->name('judge')->middleware('judge');;

// Dashboard - Easyflowadmin
Route::get('easyflowAdmin', 'EasyflowAdminApiController@index')->name('easyflowAdmin')->middleware('easyflowAdmin');

birdietorerik's avatar

@Snapey Hi!

It show my vue page

PlayerController

<?php

namespace App\Http\Controllers\Api\V1\Admin;

use App\Http\Controllers\Controller;
use App\Services\ChartsService;
use Illuminate\Support\Facades\Auth;

class PlayerApiController extends Controller
{
     /**
     * Create a new controller instance.
     *
     * @return void
     * Check if user is logged in
     */
    public function __construct()
    {
        $this->middleware(['auth', 'verified']);
    }
    
    public function index()
    {
        
        $onlineusers = new ChartsService([
            'title'        => 'TESTING NEW DASHBOARD',
            'icongraf'     => 'usersonline', 
            'chart_icon'   => 'wc', 
            'chart_type'   => 'latest',
            'model'        => 'App\Models\User',
            'column_class' => 'col-md-12',
            'fields'       => ['name', 'email'],
            'limit'        => 5,
            'filter_by_field'  => 'online',
            'filter_by_onlinestatus' => 1,
            'filter_by_period' => 'year',
            
        ]);
    
        return response()->json(compact('onlineusers'));
    }
}

Checked response in telescope, but data return is emty ???

birdietorerik's avatar

@Snapey Hi! Sorry,

You ask: what exact route are you loading? Call route :

Route::get('player', 'PlayerApiController@index')->name('player')->middleware('player');;
```

You ask : what happens when you visit /player ?

It show my vue file

Player.vue

```
<template>

    <Playerinfocorce></Playerinfocorce>

</template>
```

birdietorerik's avatar

@Snapey Hi! Yes, it must return json (but it dosent) ? But it calls Player.vue file, and working ?

Realy confused here, ...

Tryed to remove the route to player dashboard, and still working ?????

Snapey's avatar

and if you just open the/player route directly in your browser address bar?

Sinnbeck's avatar

Any chance that you have cached your routes in dev?

php artisan optimize:clear 
birdietorerik's avatar

Hi All!

This is so wared, when i run this:

php artisan route:list

I get this error:

Illuminate\Contracts\Container\BindingResolutionException 

  Target class [App\Http\Controllers\Api\V1\Admin\LocationController] does not exist.

  at vendor/laravel/framework/src/Illuminate/Container/Container.php:875
    871▕ 
    872▕         try {
    873▕             $reflector = new ReflectionClass($concrete);
    874▕         } catch (ReflectionException $e) {
  ➜ 875▕             throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
    876▕         }
    877▕ 
    878▕         // If the type is not instantiable, the developer is attempting to resolve
    879▕         // an abstract type such as an Interface or Abstract Class and there is

  1   [internal]:0
      Illuminate\Foundation\Console\RouteListCommand::Illuminate\Foundation\Console\{closure}(Object(Illuminate\Routing\Route))

      +13 vendor frames 
  15  [internal]:0
      Illuminate\Foundation\Console\RouteListCommand::Illuminate\Foundation\Console\{closure}(Object(Illuminate\Routing\Route))
Sinnbeck's avatar

@birdietorerik did you read the error? It's quite self exanatory?

Target class [App\Http\Controllers\Api\V1\Admin\LocationController] does not exist.

So that class is in use but does not exist.

Also does not sound related to the problem this thread is about

birdietorerik's avatar

Hi All!

Finely i figer this out.

The problem is that i cant call root with middelware like this:

// Dashboard - player
    Route::get('player', 'PlayerApiController@index')->name('player')->middleware('player');

If i do that, my controller -> PlayerApiController@index dosent get called

If i set route like this, it working fine:

// Dashboard - player
    Route::get('player', 'PlayerApiController@index')->name('player');

So my question is WHY ? Can i call middelware from controller ?

Snapey's avatar

because your middleware is broken, as we have tried to explain many times.

Did you edit the middleware? What does it look like now?

birdietorerik's avatar

@Snapey Hi! Soory, dosent know wat you say -> middelware is broken ???

Have this route file now :

<?php

Route::group(['prefix' => 'v1', 'as' => 'api.', 'namespace' => 'Api\V1\Admin', 'middleware' => ['auth:sanctum']], function () {
    // Abilities
    Route::apiResource('abilities', 'AbilitiesController', ['only' => ['index']]);

    // Locales
    Route::get('locales/languages', 'LocalesController@languages')->name('locales.languages');
    Route::get('locales/messages', 'LocalesController@messages')->name('locales.messages');

    // Permissions
    Route::resource('permissions', 'PermissionsApiController');
    
    // Roles
    Route::resource('roles', 'RolesApiController');

    // Users
    Route::resource('users', 'UsersApiController');

    // Content Category
    Route::resource('content-categories', 'ContentCategoryApiController');

    // Content Tag
    Route::resource('content-tags', 'ContentTagApiController');

    // Content Page
    Route::post('content-pages/media', 'ContentPageApiController@storeMedia')->name('content-pages.storeMedia');
    Route::resource('content-pages', 'ContentPageApiController');

    // Country
    Route::resource('countries', 'CountryApiController');

    // Golfclub
    Route::resource('golfclubs', 'GolfclubApiController');

    // Grad
    Route::resource('grads', 'GradApiController');

    // Dommereb
    Route::resource('dommerebs', 'DommerebApiController');

    // Startliste
    Route::resource('startlistes', 'StartlisteApiController');

    // Lokaleregler
    Route::resource('lokalereglers', 'LokalereglerApiController');

    // Walkie Talkie
    Route::apiResource('walkie-talkies', 'WalkieTalkieApiController', ['only' => ['index']]);
    // Location GPS
    Route::apiResource('places', 'LocationApiController', ['only' => ['index']]);
    // Chat
    Route::apiResource('chats', 'ChatApiController', ['only' => ['index']]);

    // Settings
    Route::apiResource('settings', 'SettingsApiController', ['only' => ['index']]);

    // Testing
    Route::apiResource('testings', 'TestingApiController', ['only' => ['index']]);


    // Turnements
    Route::resource('turnements', 'TurnementsApiController');

     // Flightdata
    Route::resource('Flightdata', 'FlightdataApiController');

     // Gpstrackerclub
    Route::resource('gpstrackerclubs', 'GpstrackerclubApiController');

    // Testing
    Route::apiResource('timeusedflights', 'TimeusedflightsApiController', ['only' => ['index']]);

    // Golfclubfeedback
    Route::resource('golfclubfeedbacks', 'GolfclubfeedbackApiController');

    // Investor
    Route::post('investors/media', 'InvestorApiController@storeMedia')->name('investors.storeMedia');
    Route::resource('investors', 'InvestorApiController');

    // Profile Index
    //
    Route::apiResource('profilen', 'ProfilesApiController', ['only' => ['index']]);
    //Route::resource('profilen', 'ProfilesApiController');

    //Route::resource('Timer','Timetracking');

     // Configuration
    Route::resource('configurations', 'ConfigurationApiController');
     
    // Gpstracker
    //Route::resource('gpstrackers', 'GpstrackerApiController');
    Route::get('gpstrackers', 'GpstrackerApiController@gpstrackers')->name('gpstrackers');
    Route::get('gpsdistence', 'GpstrackerApiController@gpsdistence')->name('gpsdistence');
    Route::get('clubconfig', 'GpstrackerApiController@clubconfig')->name('clubconfig');
    Route::get('gpsholes', 'GpstrackerApiController@gpsholes')->name('gpsholes');
    Route::get('getconfigdata' , 'ConfigurationApiController@getconfigdata')->name('getconfigdata');
 
});

Route::group(['prefix' => 'v1', 'as' => 'api.', 'namespace' => 'Api\V1\Admin'], function () {

    // Dashboard - dashboard
    Route::get('dashboard', 'DashboardApiController@index')->name('dashboard')->middleware('dashboard');

    // Dashboard - Player
    Route::get('player', 'PlayerApiController@index')->name('player')->middleware('player');

    // Dashboard - Superadmin
    Route::get('superadmin', 'SuperadminApiController@index')->name('superadmin')->middleware('superadmin');
   
    // Dashboard - Starter
    Route::get('starts', 'StartsApiController@index')->name('starts')->middleware('starts');

    // Dashboard - Marshal
    Route::get('marshal', 'MarshalApiController@index')->name('marshal')->middleware('marshal');

    // Dashboard - Judge
    Route::get('judge', 'JudgeApiController@index')->name('judge')->middleware('judge');

    // Dashboard - Easyflowadmin
    Route::get('easyflowAdmin', 'EasyflowApiController@index')->name('easyflowAdmin')->middleware('easyflowAdmin');

    // Dashboard - Trackcrew
    Route::get('trackcrew', 'TrackcrewApiController@index')->name('trackcrew')->middleware('trackcrew');


});    

This is controller for dashboard:

<?php

namespace App\Http\Controllers\Api\V1\Admin;

use App\Http\Controllers\Controller;
use App\Services\ChartsService;
use Illuminate\Support\Facades\Auth;

class DashboardApiController extends Controller
{
     /**
     * Create a new controller instance.
     *
     * @return void
     * Check if user is logged in
     */
    public function __construct()
    {
        $this->middleware(['auth', 'verified']);
    }
    
    public function index()
    {
        dd("Dashboard index called");

        return response()->json([
            'data' => [
                'message' => 'Dashboard',
            ],
        ]);
    }
}
dd("Dashboard index...)

Never get called ?

Middelware:

 <?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class Dashboard
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
       
        if (!Auth::check()) {
            return redirect()->route('login');
        }
        
        $currentrole = Auth()->user()->roles->map->title;

        if ($currentrole == 'Superadmin') {
            return $next($request);
        }
 
        abort(403, 'Access denied');

    }
}

Dashboard.vue

<template>
  
  <div class="container-fluid">
     
    <Timeused></Timeused>
    
    <Googlemap></Googlemap>

  </div>

 
</template>

<script>
import BarChart from '@components/Charts/Bar'
import LineChart from '@components/Charts/Line'
import PieChart from '@components/Charts/Pie'
import StatsCard from '@components/Charts/Stats'
import LatestCard from '@components/Charts/Latest'

export default {
  components: {
    BarChart,
    LineChart,
    PieChart,
    StatsCard,
    LatestCard
  },
  data() {
    return {
      datacollection: null,
      charts: null
      
    }
  },
  created() {
    axios.get('dashboard').then(response => {
      console.log("KALLER OPP DASHBOARD");
    }).catch(function (error) {
         console.log(error);
    });
  }
}
</script>

Console.log dosent show in console window ???

axios.get(.... calls controller -> DashboardApiController@index But it dosent do that ???

birdietorerik's avatar

@Snapey Hi! In network it calls

Request URL: http://portal.test:8000/admin/dashboard
Request Method: GET
Status Code: 200 OK
Remote Address: 127.0.0.1:8000
Referrer Policy: strict-origin-when-cross-origin

'namespace' => 'Api\V1\Admin' NOT STARTED ?

My guess it that it must call

Request URL: https://birdietorerik.no/api/v1/dashboard
birdietorerik's avatar

@Snapey Hi! Dont know why this just work now, but you have helped alot on this problem. And give you BEST ANSWER. Thank you for all your help :)

Please or to participate in this conversation.