blade در لاراول
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
- استفاده از دستور @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() }}