بخش دوم - آشنایی با دستورات Blade - قسمت دوم
1- دستور include:
این دستور برای درج یک ویو (view) دیگر در ویوی فعلی استفاده میشود، و محتویات یک فایل را درون فایل دیگر قرار می دهد.
<body>
@include('partials.header')
</body>
اگر فایل partials/header.blade.php وجود داشته باشد، محتویات آن در محل استفاده از @include درج خواهد شد.
2- دستور includeIf:
این دستور همانند @include عمل میکند، با این تفاوت که اگر ویو مورد نظر وجود نداشته باشد، خطایی رخ نمیدهد و دستور به سادگی نادیده گرفته میشود.
<body>
@includeIf('partials.header')
</body>
3- دستور includeWhen:
این دستور برای درج یک ویو در شرایط خاص استفاده میشود. این دستور دو پارامتر میگیرد: یک شرط و نام ویو.
// $showHeader = true;
<body>
@includeWhen($showHeader, 'partials.header')
</body>
4- دستور includeUnless:
این دستور برعکس @includeWhen عمل میکند، یعنی ویو را زمانی درج میکند که شرط برقرار نباشد.
// $hideHeader = false;
<body>
@includeUnless($hideHeader, 'partials.header')
</body>
5- دستور includeFirst:
این دستور برای درج اولین ویو موجود در لیست ویوهای داده شده استفاده میشود. این دستور یک آرایه از نام ویوها را به عنوان پارامتر دریافت میکند.
<body>
@includeFirst(['custom.header', 'partials.header'])
</body>
در این مثال، اگر ویوی custom.header وجود داشته باشد، درج میشود و اگر وجود نداشته باشد، ویوی partials.header درج میشود.
6- دستور section:
این دستور برای تعریف یک بخش (section) از قالب استفاده میشود که میتواند در قالب اصلی (layout) یا قالبهای فرزند مورد استفاده قرار گیرد.
@section('content')
<p>This is the content section.</p>
@endsectionاین دستور به تنهایی کاربرد ندارد و نیازمند دستور yield نیز می باشد(مورد بعدی).
7- دستور yield
این دستور برای نمایش محتوای یک بخش در قالب اصلی (layout) استفاده میشود.
<body>
@yield('content')
</body>
این دستور سکشن content که بالاتر تعریف کرده ایم را نمایش می دهد.
8- دستور sectionMissing:
این دستور بررسی میکند که آیا یک section در ویو فعلی تعریف نشده است. اگر آن بخش تعریف نشده باشد، کد داخل sectionMissing اجرا میشود. و درصورتی که تعریف شده باشد محتوای sectionMissing نادیده گرفته می شود و محتوای section نمایش داده می شود.
@sectionMissing('sidebar')
<div class="sidebar">
<p>This is the default sidebar content.</p>
</div>
@endsectionMissing9- دستور hasSection:
این دستور بررسی میکند که آیا یک section مشخص در ویو فعلی تعریف شده است یا نه. این دستور به شما امکان میدهد که بر اساس وجود یا عدم وجود یک بخش، رفتار خاصی را در قالب خود اعمال کنید.
@hasSection('navigation')
<div class="pull-right">
@yield('navigation')
</div>
@endif10- دستور extends:
این دستور برای تعریف اینکه یک ویو از کدام قالب (layout) ارثبری میکند استفاده میشود.
// resources/views/welcome.blade.php
@extends('layouts.app') //layouts/app.blade.php
@section('header')
<h1>Header Section in Child View</h1>
@endsection
این دستور برای ارثبری از قالب اصلی استفاده شده است. سپس با استفاده از دستورات section، محتوای هر بخش در قالب اصلی که از آن ارث بری شده جایگذاری شده است.
در واقع یک فایل مادر وجود دارد که در فایل های فرزند extends می شود و گسترش می یابد.
نمایی از فایل layouts/app.blade.php یا همان فایل مادر:
// resources/views/layouts/app.blade.php
<body>
<header>
@yield('header')
</header>
</body>
همانطور که مشخص است، yield سکشن header در فایل مادر انجام شده در صورتی که سکشن header در فایل فرزند تعریف شده و با استفاده از extends فایل مادر در فایل فرزند، هر دو به هم مرتبط شده اند.
11- دستور show:
این دستور برای پایان دادن به یک بخش و همزمان نمایش محتوای آن استفاده میشود. این دستور معمولاً زمانی استفاده میشود که بخشی از قالب بخواهد محتوای بخش خود را قبل از پایان قالب فعلی نمایش دهد.
@section('sidebar')
<p>This is the sidebar.</p>
@show#laravel #فصل_۳
@AmirhDeveloper
.