Now, we must understand how to create new pages with Laravel.
How Routes and Blade Work
Let's take a look again at how the default homepage is defined:
routes/web.php:
use Illuminate\Support\Facades\Route; Route::get('/', function () {    return view('welcome');});To define the Route at the URL, you do Route::get().
- The first argument is the URL: in this example, it is /
- The second argument is a callback function that returns a View.
View is a template file written in a Laravel-specific language called Blade. You can think of a Blade file as an HTML file with variables inside.
The welcome part in the code means the file is in a resources/views folder with the extension .blade.php. This extension is crucial.
In that welcome.blade.php file, we have HTML with some Blade syntax like @if or @auth.
Experiment: Changing Text on Homepage
Let's change some text in the View.
resources/views/welcome.blade.php:
// ... <h1 class="mb-1 font-medium">Let's get started</h1> <h1 class="mb-1 font-medium">Welcome to Laravel!</h1>  // ...Here's a GitHub commit for this change.
Reload the homepage. We can see new words have been changed without any recompiling or running terminal commands.

Creating a Second Page
Now, let's add a second Route.
routes/web.php:
Route::get('/', function () {    return view('welcome');}); Route::get('/second', function () {     return view('second');});This will make a project.test/second link available.
The Route will return a View called second.blade.php, which doesn't exist yet. Let's create it.
Copy the file contents from welcome.blade.php to second.blade.php and modify some text.
resources/views/second.blade.php:
// ... <h1 class="mb-1 font-medium">Welcome to Laravel!</h1> <h1 class="mb-1 font-medium">Welcome to Second Page!</h1>  // ...Now, navigate to the /second URL. We can see a different View page loaded.

Here's the GitHub commit for this change.
What if Route/View Doesn't Exist?
If you visit a Route that doesn't exist, a standard Laravel 404 error page will be shown:

Another situation: you have a Route, but the Blade file isn't created.
Route::get('/third', function () {    return view('third'); // <-- third.blade.php file doesn't exist});Then, Laravel will return the error page with 500 HTTP status code (not 404), showing the details of the error:

More Simple Syntax: Route::view()
In these examples, we load almost static HTML pages in Blade Views. Of course, the pages will have more complex logic in real projects.
For that, we will create so-called Laravel Controllers, but we will get to that a bit later. One step at a time.
But if you do have similar simple static pages with just a Blade file and without much logic, you can use a shorter syntax in the Routes file: instead of Route::get() and a callback function, do Route::view() and provide the Blade file name as a second parameter.
routes/web.php:
Route::get('/second', function () {     return view('second'); });  // More simple syntax:Route::view('/second', 'second'); Here's the GitHub commit for this change.
That's it! That's how you create Routes and simple static pages in Laravel with Blade language.
No comments or questions yet...