If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
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 में 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
<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 में दिखाया गया है।
अब child view से layout extend करने के लिए Blade @extends directive use किया जाता है।
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
@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 templating के लिए कुछ blade directives provide किये हैं , जिससे हमें blade file में core PHP का use नहीं करना पड़े।
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
इसी तरह switch statement के लिए @switch, @case, @break, @default and @endswitch का use किया जाता है।
@switch($i)
@case(1)
First case...
@break
@case(2)
Second case...
@break
@default
Default case...
@endswitch
Loop statements के लिए Laravel ने हमें @for - @endfor, @foreach - @endforeach , @forelse - @endforelse directives provide किये हैं।
@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