Laravel Blade Template


Laravel Blade View ही हमारे Application का view part होता है। Blade Templating Engine , simple और powerful feature है। Blade file में आप easily core PHP भी use कर सकते हैं।


In Fact सभी Blade files , plain PHP code में ही compiled होती हैं। Blade View file को .blade.php के साथ resources/views directory में save किया जाता है।

Laravel Blade Template Inheritance

Laravel Defining A Layout

Laravel में layout define करने का मतलब अपने view के लिए एक master file prepare करना। layout को HTML Markup Language के साथ कुछ blade directives के साथ layout  define किया जाता है।


Note
अगर आपने Core PHP में कोई web page (website) बनाई होगी तो उसमे आप header / footer files create करते थे। और उन्ही header / footer files को बाकी files में include कर लेते थे। जिससे आपके header / footer सभी pages पर same रहें।


layout define करने का concept भी उसी की तरह लेकिन थोड़ा सा different है।


layout file create करते समय हम master / default file में कुछ page sections define कर देते हैं , और जब हम उस master / default file को extend / inherit करते हैं तो define किये गए sections के अंदर ही अपना content लिखते हैं। जिससे भो content उसी जगह placed हो जाता है जहाँ पर master / default file में वो sections define किये गए थे।
For Example :

File Stored in resources/views/layouts/default.blade.php

Copy Fullscreen Close Fullscreen
<html>
    <head>
        <title>App Name - @yield('title')</title>
        @yield('css')
    </head>
    <body>
        <div class="container">
            @yield('content')
        </div>
        @yield('javascript')
    </body>
</html>

layout / master file में @yield blade directives की help से page sections को define किया जाता है। जैसा कि Example में दिखाया गया है।

Laravel Extending A Layout

  1. अब child view से layout extend करने के लिए Blade @extends directive use किया जाता है।

  2. extend करने के बाद अब , parent file (default.blade.php) में @yield() directive की help से define किये गए sections में अपना content रख सकते हैं।


@section() blade directive की help से parent file में defined sections को access किया जाता है।
For Example :

File Stored in resources/views/child.blade.php

Copy Fullscreen Close Fullscreen
@extends('layouts.default')

@section('title', 'Page Title')
@section('css')
    <!-- your css style -->
@endsection

@section('content')
    <p>This is my body content.</p>
@endsection

@section('javascript')
    <!-- your javascript -->
@endsection

? @yield() directive second parameter के रूप में default value भी accept करता है , अगर किसी child page में value नहीं दी जाती है , तो default value print हो जाती है।

<title>@yield('title', 'Default Title Value')</title>

Blade file में {{ }} के अंदर आप कोई भी valid PHP statement लिख सकते हैं।

Laravel Blade Control Structures

Laravel ने blade templating के लिए कुछ blade directives provide किये हैं , जिससे हमें blade file में core PHP का use नहीं करना पड़े।


  1. @if / @else / @elseif
  2. @while
  3. @foreach

Laravel @if statment

blade file में if statement के लिए हम Laravel के @if, @elseif, @else, and @endif directives करते हैं।

@if (count($records) === 1)
    I have one record!
@elseif (count($records) > 1)
    I have multiple records!
@else
    I don't have any records!
@endif

Laravel Switch Statements

इसी तरह switch statement के लिए @switch, @case, @break, @default and @endswitch का use किया जाता है।

Copy Fullscreen Close Fullscreen
@switch($i)
    @case(1)
        First case...
        @break

    @case(2)
        Second case...
        @break

    @default
        Default case...
@endswitch

Laravel Loops

Loop statements के लिए Laravel ने हमें @for - @endfor, @foreach - @endforeach , @forelse - @endforelse directives provide किये हैं।

Copy Fullscreen Close Fullscreen
@for ($i = 0; $i < 10; $i++)
    The current value is {{ $i }}
@endfor

@foreach ($users as $user)
    <p>This is user {{ $user->id }}</p>
@endforeach

@forelse ($users as $user)
    <li>{{ $user->name }}</li>
@empty
    <p>No users</p>
@endforelse

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook