Use Laravel Blade Template Engine

Use Laravel Blade Template Engine

Layouts are often the starting point of many web development projects. Laravel Blade template engine enables the developer to produce HTML based sleek designs and themes.

All views in Laravel are usually built in the blade template.  Blade engine is fast in rendering views because it caches the view until they are modified. All the files in resources/views have the extension .blade.php.

Laravel blade template is pretty impressive in performance.  This tutorial will serve as an introduction to this templating engine.

Create Pages Routes


First, I will create the routes to gain access to my page. Open routes/web.php and add the following lines in it.

Route::get('/', function()
 
{
 
   return View::make('pages.home');
 
});
 
Route::get('/about', function()
 
{
 
   return View::make('pages.contact');
 
});

We are only working on views only, and thus don’t need to access the controllers.  To learn more about controllers, take a look at: Working With Controllers And Middleware

Create Views Structure


Now that the routes are ready, let’s create the Views structure by creating the following folders and files.

- resources
 
-- views
 
--- layouts
 
------- default.blade.php
 
--- pages
 
------- home.blade.php
 
------- contact.blade.php
 
--- includes
 
------- head.blade.php
 
------- header.blade.php
 
------- footer.blade.php

Create Includes


Create the following includes, with the following code:

head.blade.php

<meta charset="utf-8">
 
<meta name="description" content="">
 
<meta name="Saquib" content="Blade">
 
<title>Checkout our layout</title>
 
<!-- load bootstrap from a cdn -->
 
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/twitter-bootstrap/3.0.3/css/bootstrap-combined.min.css">

Header.blade.php

<div class="navbar">
 
   <div class="navbar-inner">
 
       <a id="logo" href="/">Single Malt</a>
 
       <ul class="nav">
 
           <li><a href="/">Home</a></li>
 
           <li><a href="/contact">Contact</a></li>
 
       </ul>
 
   </div>
 
</div>

footer.blade.php

<div id="copyright text-right">© Copyright 2019 Programmingpot.com </div>

Create the Layout


I will use @include to bring in tiny parts of the code that I have created in includes folders, and @yield to bring in content from the individual pages I will be using.

<!doctype html>
 
<html>
 
<head>
 
   @include('includes.head')
 
</head>
 
<body>
 
<div class="container">
 
   <header class="row">
 
       @include('includes.header')
 
   </header>
 
   <div id="main" class="row">
 
           @yield('content')
 
   </div>
 
   <footer class="row">
 
       @include('includes.footer')
 
   </footer>
 
</div>
 
</body>
 
</html>

Blade allows the use of the layout that I just created by using @extends. By creating @section, I will create a section that will be used in the layout. Here I will use @section(‘content’) and in the layout, everything that I will type here will be injected in @yield in the layout.

Go to resources/views/pages and put the following code in these files.

pages/home.blade.php

@extends('layouts.default')
 
@section('content')
 
   i am the home page
 
@stop

pages/contact.blade.php

@extends('layouts.default')
 
@section('content')
 
   i am the contact page
 
@stop

Conclusion


This is the simple foundation and the basic steps for getting starting with Blade templating engine. Now that you know the file structures and the way Laravel Blade template engine renders the view, I will demonstrate how to integrate Bootstrap template with Laravel in my next article. So stay tuned.

About the Author: Rajiv Bikram

"Software is the Hardware of my Life" I am a 23 years old Software Nerd, I love new Technology, software development, writing blogs and share the knowledge with others. I’m studying Master of Computer Information System (MCIS).

You Might Like

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.