Routing is one of the essential concepts in Laravel. Routing in Laravel allows you to route all your application requests to its appropriate controller. The main and primary routes in Laravel acknowledge and accept a URI (Uniform Resource Identifier) along with a closure, given that it should have to be a simple and expressive way of routing. In this article we will discuss a brief concept of Laravel routing.
What is Laravel routing?
Using Routing you can create a request URL for your application. you can design set of HTTP request like POST Request, GET Request, PUT Request and DELETE Request using routing in Laravel 8.
In the Laravel routes folder contain two routes’ files, one is api.php, which is used to API routes and another is web.php, which is used for routes for the web application.
Routing in Laravel includes various methods. We explore each one with an example code step by step.
• Basic Routing
• Route Parameters
• Named Routes
• Route Groups
• Route Model Binding
Basic routing
Most of the routes for your application will be defined in the app/routes.php file. The simplest Laravel routes consist of a URI and a Closure callback.
Basic GET Route
Route::get('/', function()
{
return 'Hello World';
});
Basic POST Route
Route::post('foo/bar', function()
{
return 'Hello World';
});
Registering A Route For Multiple Verbs
Route::match(array('GET', 'POST'), '/', function()
{
return 'Hello World';
});
Registering A Route Responding To Any HTTP Verb
Route::any('foo', function()
{
return 'Hello World';
});
Forcing A Route To Be Served Over HTTPS
Route::get('foo', array('https', function()
{
return 'Must be over HTTPS';
}));
Often, you will need to generate URLs to your routes, you may do so using the URL::to method:
$url = URL::to('foo');
Route parameters
When we need to capture the parameter passed to the URL, route parameters work for it. We can achieve this in two ways.
Required Parameter:
Using this method its compulsory to capture the passed parameter. For example, getting the user ID from the URL.
Route::get('user/{id}', function ($id)
{
return 'User Id is:'.$id;
});
Optional parameter
Sometimes we need to make route parameters as optional, then we use this method. Just place the ‘?’ symbol after the parameter name. Make sure that you have a pass the default value to that variable.
Route::get('customer/{name?}', function ($name = null) {
return $name;
});
Named routes
In Laravel we can set the name of the route. This feature requires some time, for example, you want to redirect a user one to another route than no need to define complete redirect URL, just give its name.
If you have using the names routes method and want to change the URL structure then only change the web.php file. See the example code below:
Route::get('/task/{id}', function($id)
{
return route('task',['id' => 2]);
})->where('id', '[0-9]+')->name('task');
Explanation: Here, task is the route name and ‘route(‘task’,[‘id’ => 2])’ is the output value.
Route groups
you can combine large number of routes in group to share route attributes like namespaces or middleware. No need to define an attribute for each route.
In the below example, we combine the ‘auth’ middleware with URL prefix ‘admin’.
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function()
{
Route::get('dashboard', function() {} );
Route::get('settings', function() {} );
});
Route Model Binding
This method you can inject a model ID into your route or controller action. This method has two ways one in Implicit binding and another one is Explicit Binding.
Route::get('posts/{post}', function ($post) {
// return the view and the post
return view('post.show', compact('post'));
});
Explanation: $post we can inject the post object. Inject the ‘post’ model into a route controller.
Conclusion
Routing is one of the important concepts of web applications. It allows you to quickly manage various URLs' structures. The Laravel routing feature makes the process very easy.
For more Article: Click here