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

Keura's avatar
Level 1

My route is not redirecting

My route to \table\detailed is not redirecting to the Controller, I wanted to put "table.detailed" inside the "table" group.

THIS IS MY ENTIRE ROUTE FILE:

<?php

use App\Mail\MessageMailTest;
use GuzzleHttp\Middleware;
use Illuminate\Support\Facades\Route;
use App\Models\User;
use App\Http\Middleware\VerifyAdmMiddleware;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    if (Auth::check()) {
        return redirect()->route('home');
    } else {
        return view('welcome');
    }
})->name('welcome');

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

Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])
    ->name('home')
    ->middleware('verified');


Route::middleware('verified')
    ->resource('table', 'App\Http\Controllers\TableController');
    
Route::middleware('verified')
    ->get('/table', [\App\Http\Controllers\TableController::class, 'index'])
    ->name('table');

Route::prefix('/table')->middleware('verified')->group(function () {
    Route::middleware(VerifyAdmMiddleware::class)->get('/create', [\App\Http\Controllers\TableController::class, 'create'])->name('table.create');
    Route::middleware(VerifyAdmMiddleware::class)->post('/create', [\App\Http\Controllers\TableController::class, 'store'])->name('table.store');
    Route::middleware(VerifyAdmMiddleware::class)->post('/edit', [\App\Http\Controllers\TableController::class, 'edit'])->name('table.edit');
    Route::middleware(VerifyAdmMiddleware::class)->post('/destroy', [\App\Http\Controllers\TableController::class, 'destroy'])->name('table.destroy');
    Route::post('/list', [\App\Http\Controllers\TableController::class, 'list'])->name('table.list');
});

Route::middleware('verified')->get('/detailed', [\App\Http\Controllers\TableController::class, 'show_detailed'])->name('table.detailed');


Route::middleware('verified')
    ->middleware(VerifyAdmMiddleware::class)
    ->resource('gm', 'App\Http\Controllers\GmController');


Route::middleware('verified')
    ->middleware(VerifyAdmMiddleware::class)
    ->get('/gm', [\App\Http\Controllers\GmController::class, 'index'])
    ->name('gm');

Route::prefix('/gm')->middleware('verified')->middleware(VerifyAdmMiddleware::class)->group(function () {
    Route::get('/create', [\App\Http\Controllers\GmController::class, 'create'])->name('gm.create');
    Route::post('/create', [\App\Http\Controllers\GmController::class, 'store'])->name('gm.store');
    Route::post('/search', [\App\Http\Controllers\GmController::class, 'search'])->name('gm.search');
    Route::post('/list', [\App\Http\Controllers\GmController::class, 'list'])->name('gm.list');
});


Route::resource('user', 'App\Http\Controllers\UserController')
    ->middleware('verified');

Route::prefix('/user')->middleware('verified')->group(function () {
    Route::get('/', [\App\Http\Controllers\UserController::class, 'index'])->name('profile');

});

Route::resource('adm', 'App\Http\Controllers\AdmController')
    ->middleware('verified')
    ->middleware(VerifyAdmMiddleware::class);

Route::prefix('/dashboard')->middleware('verified')->middleware(VerifyAdmMiddleware::class)->group(function () {
    Route::get('/', [\App\Http\Controllers\AdmController::class, 'dashboard'])->name('dashboard');
    Route::get('/reports', [\App\Http\Controllers\AdmController::class, 'report_view'])->name('dashboard.report');
    Route::get('/pdf', [\App\Http\Controllers\AdmController::class, 'create_pdf'])->name('pdf');

});

// Route::get('/message-teste', function () {
//     return new MessageMailTest();
//     // Mail::to('[email protected]')->send(new MessageMailTest());
//     // return "deu certo";
// });

Route::fallback(function () {
    return view('fallback');
});

NOT WORKING:

Route::prefix('/table')->middleware('verified')->group(function () {
    Route::middleware(VerifyAdmMiddleware::class)->get('/create', [\App\Http\Controllers\TableController::class, 'create'])->name('table.create');
    Route::middleware(VerifyAdmMiddleware::class)->post('/create', [\App\Http\Controllers\TableController::class, 'store'])->name('table.store');
    Route::middleware(VerifyAdmMiddleware::class)->post('/edit', [\App\Http\Controllers\TableController::class, 'edit'])->name('table.edit');
    Route::middleware(VerifyAdmMiddleware::class)->post('/destroy', [\App\Http\Controllers\TableController::class, 'destroy'])->name('table.destroy');
    Route::post('/list', [\App\Http\Controllers\TableController::class, 'list'])->name('table.list');
    Route::get('/detailed', [\App\Http\Controllers\TableController::class, 'show_detailed'])->name('table.detailed');
});

WORKS

Route::prefix('/table')->middleware('verified')->group(function () {
    Route::middleware(VerifyAdmMiddleware::class)->get('/create', [\App\Http\Controllers\TableController::class, 'create'])->name('table.create');
    Route::middleware(VerifyAdmMiddleware::class)->post('/create', [\App\Http\Controllers\TableController::class, 'store'])->name('table.store');
    Route::middleware(VerifyAdmMiddleware::class)->post('/edit', [\App\Http\Controllers\TableController::class, 'edit'])->name('table.edit');
    Route::middleware(VerifyAdmMiddleware::class)->post('/destroy', [\App\Http\Controllers\TableController::class, 'destroy'])->name('table.destroy');
    Route::post('/list', [\App\Http\Controllers\TableController::class, 'list'])->name('table.list');
});

Route::middleware('verified')->get('/detailed', [\App\Http\Controllers\TableController::class, 'show_detailed'])->name('table.detailed');
0 likes
6 replies
nexxai's avatar

Can you paste only the relevant parts of the working and not working php artisan route:list

Keura's avatar
Level 1

@nexxai

Inside de prefix '\table' NOT Working

    Route::get('/detailed', [\App\Http\Controllers\TableController::class, 'show_detailed'])->name('table.detailed');

Outside the prefix

Route::middleware('verified')->get('/detailed', [\App\Http\Controllers\TableController::class, 'show_detailed'])->name('table.detailed');
nexxai's avatar

@Keura That's not what I meant; I want you to run php artisan route:list in the console when it's working, and then again when it's not, and paste the relevant output of those two commands here.

Keura's avatar
Level 1

@nexxai Sorry, it was 1 AM when I saw the message

Working Response:

GET|HEAD  | detailed                 | table.detailed      | App\Http\Controllers\TableController@show_detailed                     | web                                     |
|        |           |                          |                     |                                                                        | verified                                |

Not Working

GET|HEAD  | table/detailed           | table.detailed      | App\Http\Controllers\TableController@show_detailed                     | web                                     |
|        |           |                          |                     |                                                                        | verified                                |
nexxai's avatar
nexxai
Best Answer
Level 37

@Keura Ok I think you have them backward because when you're putting it in the group, it's adding a prefix of /table/ to the path, and when it's not in the group, it doesn't have that prepended to it.

Either way, if you want to put it in the group, with the /table/ prepended to the path (changing it from /detailed to /table/detailed), make sure when you're trying to access that route that you're using the correct path.

For example:

https://site.test/detailed

vs.

https://site.test/table/detailed

1 like

Please or to participate in this conversation.