دیرکتیو (Directive) در این مدخل به دستورهای قالبساز Blade در لاراول اشاره دارد. دیرکتیو با پیشوند @ در فایل قالب نوشته میشود و قابلیتهایی مانند شرط، تکرار، تعیین Layout، بررسی مجوز و مدیریت قطعات HTML را فراهم میکند. مفهوم Directive در فناوریهای دیگری هم وجود دارد، اما جدول این صفحه مخصوص Blade است.
دیرکتیوهای پرکاربرد Laravel Blade
| دیرکتیو | کاربرد |
|---|---|
@if / @elseif / @else / @endif | شرطگذاری |
@unless / @endunless | شرط معکوس |
@isset / @endisset | بررسی وجود مقدار |
@empty / @endempty | بررسی خالی بودن |
@switch / @case / @default / @endswitch | انتخاب میان چند حالت |
@for / @endfor | حلقه شمارشی |
@foreach / @endforeach | پیمایش Collection |
@forelse / @empty / @endforelse | پیمایش همراه حالت لیست خالی |
@while / @endwhile | حلقه شرطی |
@break / @continue | کنترل حلقه |
@extends / @section / @yield / @endsection | تعریف Layout و بخشها |
@show / @parent | ترکیب بخش قالب والد |
@hasSection / @sectionMissing | بررسی Section |
@include / @includeIf / @includeWhen | درج View دیگر |
@includeUnless / @includeFirst | درج شرطی و اولویتدار |
@each | رندر View برای هر آیتم |
@push / @prepend / @stack | مدیریت پشته محتوا |
@once / @endOnce / @pushOnce | جلوگیری از درج تکراری |
@auth / @guest | وضعیت ورود کاربر |
@can / @cannot / @canany | بررسی مجوز |
@csrf / @method | توکن CSRF و شبیهسازی HTTP Method |
@error | نمایش خطای اعتبارسنجی |
@class / @style | ساخت شرطی کلاس و Style |
@checked / @selected / @disabled / @readonly / @required | ویژگیهای متداول فرم |
@props / @aware | ورودیهای Blade Component |
@inject | دسترسی به وابستگی در قالب |
@json / @js | نمایش داده برای جاوااسکریپت |
@php / @endphp | بلاک کد PHP |
@verbatim / @endverbatim | نمایش متن خام با علامتهای Blade |
@production / @env | شرط محیط اجرا |
@session | بررسی و نمایش داده سشن |
نمونه شرط و حلقه
@forelse ($products as $product)
@if ($product->stock > 0)
<div>{{ $product->name }}</div>
@endif
@empty
<div>محصولی پیدا نشد</div>
@endforelse
نمونه مجوز و فرم
@can('orders.create')
<form method="POST" action="/orders">
@csrf
<button type="submit">ثبت سفارش</button>
</form>
@endcan
تعریف دیرکتیو سفارشی
use Illuminate\Support\Facades\Blade;
Blade::directive('money', function ($expression) {
return "<?php echo number_format($expression); ?>";
});
درباره کامل بودن فهرست
فهرست بالا خانوادههای اصلی دیرکتیوها را پوشش میدهد. برخی دستورها مانند Livewire یا پکیجهای دیگر به Blade اضافه میشوند و بسته به نسخه لاراول ممکن است دستورهای دیگری هم وجود داشته باشند.
برای فهم بهتر، بلید و کامپوننت را ببینید.