TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 611 subscribers
Post #286 305
فصل سه - Views

بخش دوم - آشنایی با دستورات 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>
@endsectionMissing


9- دستور hasSection:
این دستور بررسی می‌کند که آیا یک section مشخص در ویو فعلی تعریف شده است یا نه. این دستور به شما امکان می‌دهد که بر اساس وجود یا عدم وجود یک بخش، رفتار خاصی را در قالب خود اعمال کنید.
@hasSection('navigation')
<div class="pull-right">
@yield('navigation')
</div>
@endif


10- دستور 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
.
  • ❤ 1
  • 👍 1
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →