Laravel Blade

Blade is a simple but powerful templating engine included with Laravel. Blade has a collection of directives, which makes templates easier to read and create. It also has a sophisticated component system used to modularize a web application and build template layouts. Finally, unlike other templating engines, Blade uses plain PHP code inside the templates and is converted to plain PHP when the template is compiled. This means Blade is simpler and more powerful than plain PHP and yet adds zero overhead to a web application.

Blade template files use the .blade.php extension and are typically stored in the resources/views directory.

Rendering Blade Files

Like other view files, Routes can display Blade view files using the view helper function.

Route::get('/greetings', function () {
  // renders /resources/views/greetings.blade.php
  return view('greetings'); 
});

NOTE

Remember that only the base name is required. Laravel will know to look for .blade.php.

Data can also be passed to a Blade view file by adding an array to the view helper function.

Route::get('/greetings', function () {
  return view('greetings', ['name' => 'John']);
});

Display Data

Displaying Data in a Blade file can be accomplished by wrapping the variable in double curly braces {{ }}. This is sometimes known as moustache syntax.

Hello, {{ $name }}.

The Blade {{ }} statement is automatically sent through PHP's htmlspecialchars function to prevent XSS attacks. However, if you do need to display raw HTML, it can be done using the {!! !!} statement.

Hello, {!! $name !!}

Sometimes, it may be necessary to prevent the Blade engine from rendering the moustache syntax. For example, if you were also working with the Vue framework. In this case, the @ can be placed in front of the {{ }}. When the Blade template is rendered, the @ will be removed, but the {{ }} will remain.

Hello, @{{ name }}. // rendered as: Hello {{ name }}