دایرکتیو @hasSection در Laravel و سیستم قالبسازی Blade برای بررسی این است که آیا یک بخش (section) خاص در یک قالب (view) تعریف شده است یا نه. این دایرکتیو به شما اجازه میدهد تا قبل از نمایش یک بخش، ابتدا بررسی کنید که آیا آن بخش واقعاً وجود دارد.
ساختار @hasSection
۱ ۲ ۳ |
@hasSection('نام_بخش') // کدهایی که اجرا میشوند اگر بخش تعریف شده باشد @endif |
مفهوم:
اگر بخش مورد نظر در قالب تعریف شده باشد، کد داخل @hasSection اجرا خواهد شد.
اگر بخش تعریف نشده باشد، آن کد نادیده گرفته میشود.
مثال:
فرض کنید میخواهید فقط در صورتی که بخشی با نام title در صفحه تعریف شده است، آن را نمایش دهید:
۱ ۲ ۳ |
@hasSection('title') <h1>yield('title')</h1> @endif |
در این مثال، اگر در قالب فرزند (child view) بخشی با نام title تعریف شده باشد، آن بخش نمایش داده میشود. در غیر این صورت، هیچ چیزی نمایش داده نخواهد شد.
نحوه استفاده در قالبهای Blade:
فرض کنید یک قالب اصلی (layout) دارید که به صورت زیر تعریف شده است:
۱ ۲ ۳ ۴ ۵ ۶ ۷ |
@hasSection('title') @else @endif @yield('content') |
حالا در یک قالب فرزند میتوانید بخش title را تعریف کنید:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
@extends('layouts.app') @section('title', 'صفحه اصلی') @section('content') به وبسایت ما خوش آمدید! @endsection |
در اینجا:
اگر قالب فرزند بخش title را تعریف کرده باشد، عنوان صفحه نمایش داده میشود.
اگر بخش title تعریف نشده باشد، عنوان پیشفرض “My Website” استفاده میشود.
جمعبندی:
@hasSection برای بررسی وجود یک بخش در قالب استفاده میشود.
این دایرکتیو زمانی مفید است که بخواهید نمایش یا عدم نمایش بخشی از صفحه را بر اساس تعریف شدن آن بخش کنترل کنید.
0 نظر