Blade

  • نمایش داده ها
    • خروجی امن
    • خروجی خام
  • شرط ها و حلقه ها
  • استفاده از کدهای php
    • استفاده از دستور @php
    • استفاده از دستور @php به‌صورت تک‌خطی
    • استفاده از دستور @use برای وارد کردن کلاس‌ها
    • استفاده از دستور @verbatim برای جلوگیری از پردازش Blade
  • وراثت در قالب
    • yeild
    • extends
    • sections
    • include
  • جاوا اسکریپت در blade

لاراول برای مدیریت ویوها از یک سیستم به نام blade استفاده میکند با استفاده از blade میتوان صفحات استاتیک html را به صفحات پویا تبدیل کزد و داخل هر ویو امکان استفاده از دستورات php فراهم میشود.blade سینتکس مخصوص به خود را دارد اما در نهایت به php تبدیل میشود

ویژگی‌های کلیدی Blade

  • نمایش داده‌ها

    • خروجی امن (Escaped): برای جلوگیری از حملات XSS، می‌توانید از دستور {{ }} برای نمایش داده‌ها استفاده کنید: در اینصورت متغییر مورد نظر یا تابع مورد نظر اجرا خواهد شد

    • خروجی خام (Unescaped): اگر نیاز به نمایش HTML خام دارید، از {!! !!} استفاده کنید در اینصورت تگ های html پردازش نمیشوند

نکته : برای جلوگیری از پردازش دابل کرلی بریس {{ }} میتوان قبل از ان یک @ قرار داد

  • شرط‌ها و حلقه‌ها

    • شرط‌ها:

@if($age >= 18)

شما بزرگ‌سال هستید.
@else

شما کودک هستید.
@endif

حلقه‌ها:

@for ($i = 0; $i < 5; $i++)
عدد: {{ $i }}
@endfor

مثال

نمایش تاریخ به سال

{{ date('Y'); }}

اتصال نام و نام خانوادگی

{{$name.' '.$family}}

  • استفاده از کدهای php
  1. استفاده از دستور @php

@php
$message = 'سلام!';
@endphp

{{ $message }}

۲. استفاده از دستور @php به‌صورت تک‌خطی

@php($counter = 0)

۳. استفاده از دستور @use برای وارد کردن کلاس‌ها

اگر نیاز به استفاده از یک کلاس درون نمای Blade دارید، می‌توانید از دستور @use استفاده کنید:

@use('App\Models\User')

۴. استفاده از دستور @verbatim برای جلوگیری از پردازش Blade

اگر نیاز به درج کدهایی دارید که شامل سینتکس Blade هستند و نمی‌خواهید توسط موتور Blade پردازش شوند، می‌توانید از دستور @verbatim استفاده کنید:

@verbatim
@if($success)
عملیات با موفقیت انجام شد.
@endif
@endverbatim

  • وراثت قالب‌هاBlade این امکان را می‌دهد که یک قالب اصلی تعریف کرده و در قالب‌های فرزند از آن استفاده کنید:

    • قالب اصلی (layouts/app.blade.php):

@yield('content')

    • قالب فرزند (home.blade.php):

@extends('layouts.app')

@section('title', 'خانه')

@section('content')

خوش آمدید به صفحه خانه
@endsection

  • شامل کردن نمای دیگر

برای گنجاندن یک نمای دیگر در نمای فعلی، از دستور @include استفاده کنید:

@include('partials.header')

جاوا اسکریپت در blade

  • پوشش دادن به استک‌ها
    • افزودن به استک:

برای افزودن محتوای اضافی مانند اسکریپت‌ها یا استایل‌ها در بخش‌های خاصی از قالب، از دستورات @push و @stack استفاده کنید:

@push('scripts')

@endpush

  • نمایش محتوای استک:

@stack('scripts')

  • دستور @inject

برای تزریق سرویس‌ها یا کلاس‌ها به نمای Blade، از دستور @inject استفاده کنید:

@inject('metrics', 'App\Services\MetricsService')

درآمد ماهانه: {{ $metrics->monthlyRevenue() }}