Routes are the entry points to a Laravel application. There are two route files available in Laravel 8 by default. These are web.php and api.php.
If required one can create custom route file in Laravel easily.
In this article I am going to show you how to create Custom Route File in Laravel 8.
Perquisite: An installed and working Laravel Application
Essentially there are two methods to create a custom Laravel route file. I will show the first one in this post and second one later sometime. For ones with older version of Laravel, can try this link.
In this post I will demonstrate creating /admin routes here, for example calling http://127.0.0.1:8000/admin
Let’s start doing it now.
Create a file routes/admin.php with the following code:
use App\Http\Controllers\UsersController;
use Illuminate\Support\Facades\Route;
use Illuminate\Routing\Router;
use Illuminate\Http\Request;
/*
|--------------------------------------------------------------------------
| Admin Routes
|--------------------------------------------------------------------------
|
| Here is where you can register admin routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "admin" middleware group. Now create something great!
|
*/
Route::get('/', function() {
print('I am an admin');
});Next, open the app/Providers/RouteServiceProvider.php and find public function boot() in it. Add the following code to it, just above or below the existing lines of code for web and api routing.
Route::prefix('admin')
->namespace($this->namespace)
->group(base_path('routes/admin.php'));So it becomes:
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
Route::prefix('admin')
->middleware(['web', 'admin'])
->namespace($this->namespace)
->group(base_path('routes/admin.php'));
});
}
You should see I am an admin message on your browser window at http://127.0.0.1:8000/admin.
Note: Clear cache and test the url if it does not update. You can create a simple create cache route in your web.php routes file as shown below:
Route::get('/clear-cache', function() {
Artisan::call('optimize:clear');
echo Artisan::output();
});You can follow this article about clearing cache in Laravel application.
In next articles I will show you how to create a set of an Admin routes so you can login via web routes but still protect your admin area via custom user login access check. (Edit: It is already there, check it now!)
I hope you liked this article about Create Custom Route File!

One thought on “How to Create Custom Route File in Laravel 8/9/10”