Blade Templates
Blade templates (.blade.php files) mix HTML with
{{ $variable }} to print a value (automatically escaped for
safety) and @directives like @foreach and
@if for logic.
Example: looping over posts in a template
{{-- resources/views/posts/index.blade.php --}}
<h1>Posts</h1>
<ul>
@foreach ($posts as $post)
<li>{{ $post->title }}</li>
@endforeach
</ul>
Every @foreach needs a matching @endforeach
— Blade directives always come in explicit start/end pairs rather than
relying on indentation, which makes a template's structure unambiguous
even in a long file. {{ }} escaping automatically happens by
default specifically to prevent XSS — a value containing HTML/script tags
gets displayed as harmless plain text instead of being executed, which is
exactly the safe default you want for anything that ultimately came from
user input.
{{-- resources/views/posts/index.blade.php --}}
<h1>Posts</h1>
<ul>
@foreach ($posts as $post)
<li>{{ $post->title }}</li>
@endforeach
</ul>
Renders a bulleted list of every post's title.