DEV Community

Cover image for Learning Laravel: Really Radical Routing
Nathan Heffley
Nathan Heffley

Posted on • Originally published at nathanheffley.com

Learning Laravel: Really Radical Routing

Originally posted on nathanheffley.com

Since a route is the first thing every user is going to interact with when visiting your site, it's where we're going to start our Laravel journey.

In most projects, your routes will be contained within the routes\web.php file. When you open it up after creating a brand new project (read the first lesson in this series if you need help setting up a Laravel project) you will see the generic starting route:

<?php

Route::get('/', function () {
    return view('welcome');
});
Enter fullscreen mode Exit fullscreen mode

Let's break this down to figure out what's going on.

<?php

Route::get('/', function () {
Enter fullscreen mode Exit fullscreen mode

First we call the get function on the Route facade. As you may have guessed, this is setting up a route that will respond to GET requests. The first parameter in this function is the actual route itself. In this case the route is set up for the root url. Assuming that our site is being run locally, this route is going to handle any GET requests that are made to localhost:8000. Any other type of request such as POST or any request to a different path like localhost:8000/example will ignore this route and keep looking for a better match.

The second parameter, the function, is what gets called whenever somebody makes a request to the server that matches this route. In upcoming lessons I'll show you how to extract this function to other files, but for right now we'll stick with this. For small projects or simple routes, using a function directly in your routes file is a viable option.

<?php

return view('welcome');
Enter fullscreen mode Exit fullscreen mode

Inside the function we are simply returning this thing called a view. The view function is a special Laravel helper that takes a string that is then translated into the name of a file which is returned. Views will be covered in the next lesson, so make sure to check back in to learn exactly what this is doing. For right now, just rest assured that this is returning a view called 'welcome'. When you create a new project and visit it for the first time at localhost:8000, this view is what displays the large "Laravel" text and several links you see.

All in all, this route is saying that whenever somebody GETs the '/' route they should be sent back the 'welcome' view.

Lets create our own route. We won't worry about other files or views and just return a simple string.

<?php

Route::get('/hello', function () {
    return 'Hello, World!';
});
Enter fullscreen mode Exit fullscreen mode

Now visit localhost:8000/hello and you should see "Hello, World!" output in plain old text on your screen. Congratulations, you've created a fully-functioning route in Laravel!

Of course most routes you create from here on out won't be quite this simple. In the next lesson we'll go over creating views so that you can return fully valid HTML pages. After that lesson you'll be able to use Laravel to create an entire website, albeit with limited functionality.

Although this may have seemed like an overly simple lesson, that's only because Laravel makes it so easy. We'll definitely be revisiting routes in the future as there is a lot more power hidden here, but we need to cover some more of the basics before we can use those features to their full potential!

Top comments (0)