Routing Basics in Laravel

admin_img Posted By Bajarangi soft , Posted On 15-01-2021

Routes: Routes are actually the web URLs that you can visit in your web application. For example /home, /profile, /dashboard etc are all different routes that one can create in a Laravel Application. Keep in mind that, routes are case sensitive thus /profile is different than /Profile.

Routing Basics in Laravel

Creating Routes: In Laravel, all of our routes are going to be written in routes/web.php file as this directory is made standard for all our web-related routes. Open this file and let’s create our first route with Laravel, write to the end of this file.
Syntax: To write route is as given below:

// Syntax of a route
Route::request_type('/url', 'function()');
Program
// Creating a new route 
Route::get('/sayhello', function() { 
    return 'Hey ! Hello'; 
}) 
Returning Web-page: Instead of just returning strings, we are going to return webpages when someone visits a route. Let’s see how we can do that. First of all create a file called index.blade.php in resources/views. In Laravel we have a built-in templating engine called Blade thus we write all of our webpages in *.blade.php not *.html.
Program 1
<!DOCTYPE html> 
<html lang="en"> 
<body> 
    <h1>Hello! World.</h1> 
</body> 
</html>
Program 2: Add following code to your web.php now
// Creating a new route 
Route::get('/viewhello', function() { 
    return view('index'); 
}); 

Routes with controllers: Laravel provides us much more power than just writing a direct callback function. We can actually make our routes point to a function inside the controllers. To do so let’s manually create our controller first and call it mycontroller. Just go to app/Http/Controllers and create a file called mycontroller.php. Write following code in this file:

Program 1: Code written below is a basic controller code where we are just using Controllers namespace to add the capability to use it, it’s just like importing the libraries. Let’s add the function now:
<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

class mycontroller extends Controller { 
    // All the functions written here 
    // can be used in routes 
} 
Program 2: Here we have created a function called index() and inside it we are using view method to serve index2.blade.php. Now let’s make such file in resources/views and add the following code to it:
<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

class mycontroller extends Controller { 
    public function index() { 
        return view('index2'); 
    } 
} 
Program 3: We have written frontend file, written controller and now the last thing is registering the route.
<!DOCTYPE html> 
<html lang="en"> 
<body> 
    <h1>This is index 2.</h1> 
</body> 
</html>
Syntax: For registering the routes
Route::request_type('/url', 'ControllerName@functionName');
  • Note: Here ControllerName is the name of controller and functionName is the name of the function to be used when a user visits that URL. Let’s follow this syntax and write our route in routes/web.php at the end of file:

  • Program 4: Here you can see that I have written mycontroller as my controller and index as the name of the function to be attached to this url. Now let’s visit the /viewindex2 and see the output.
Route::get('/viewindex2', 'mycontroller@index'); 

Related Post