لاراول برای بخش view که سه بخش MVC خیلی تاکید داره که از Blade استفاده کنیم..خیلی هم خوبه…بذارید یکم باهم بررسی کنیم چرا ما هم از blade و امکاناتاش استفاده کنیم خوبه
من چندتا از خوبی های blade رو می نویسم که خودم استفاده می کنم
۱-رعایت اصول MVC
اولین بار که با این دوستمون آشنا شدم با خودم گفتم ملت چه بیکار هستنا…کم کم که پروژه ها بزرگ تر شد حرفمو پس گرفتم..MVC به قول اهل دین و تقوا مستحب ه..یعنی اگر استفاده هم نکنی چیزی نمیشه ولی استفاده ازش خیلی کمک می کنه ..به نظرم زمانی به داد آدم می رسه که باگ رخ بده اون موقع راحت می ری سراغ اصل ماجرا..از مزایا دیگه شم اینه که توسعه پروژه راحت تر میشه
۴-قالب سازی
با blade می شه مثلا فوتر و هدر و ثابت گرفت در همه صفحه ها به تغییرات مقادیر دیگه پرداخت
برای این کار به کد زیر دقت کنید
به طور مثال من یک فایل می سازم به اسم layout.blade.php
این فایل قالب اصلی سایت منو تشکیل می ده.
<html> <head> <title>App Name </title> </head> <body> <div class="container"> @yield('content') </div> </body> </html>
به قسمت
@yield('content')
دقت کنید این بخش همان بخشی است که دیگر صفحه هات باید پر کنند.
@extends('layouts.app') @section('content') This is my body content. @endsection
الان اول فایل می گیم از کدوم قالب استفاده کن بعد هم می گیم چی جای
@yield('content')
بذاره
۳-کمک های لاراول
در داخل Blade یکسری تکه کد ها هست که به ما خیلی کمک می کنه که کد هامون تمیز تر باشه و مقداری در View تغییرات بدیم..درسته به مقداری اصل MVC رو مورد اذیت و آزار قرار می دهد ولی اگر نباشه خودمون اذیت می شیم
من تعدادی از مهم ترین این کد ها رو به شما معرفی میکنم.
۱- اول می گیم که چطور یک روت یک ویو را برگردونه
Route::get('/showview', function () { return view('child'); });
هر کس بره آدرس
example.com/showview
اون ویو رو نمایش می ده
۲-نمایش و استفاده از متغیر پاس داده شده از کنترلر
فکر کنید شما یک متغیر از کنترلر به ویو خودتان پاس می دهید برای نمایش اون باید از کد همانند زیر استفاده کنید
(متغیر ارسالی ما slot) است
<div class="alert alert-danger"> {{ $slot }} </div>
۳-عبارت های شرطی
برای استفاده از if در blade خودمان
@if (count($records) === 1) I have one record! @elseif (count($records) === 1) I have multiple records! @else I don't have any records! @endif
۴-چک کردن متغیر ها
چک می کنیم متغیر تعریف شده است یا خیر
@isset($records) // $records is defined and is not null... @endisset @empty($records) // $records is "empty"... @endempty
۵-استفاده از switch
برای استفاده از switch
@switch($i) @case(1) First case... @break @case(2) Second case... @break @default Default case... @endswitch
علاوه بر اظهارات شرطی، Blade دستورالعمل های ساده ای برای کار با ساختار حلقه PHP فراهم می کند.هر کدام از این ها مثل php هستند
@for ($i = 0; $i < 10; $i++) The current value is {{ $i }} @endfor @foreach ($users as $user) <p>This is user {{ $user->id }}</p> @endforeach @forelse ($users as $user) <li>{{ $user->name }}</li> @empty <p>No users</p> @endforelse @while (true) <p>I'm looping forever.</p> @endwhile
یکی دیگه از نکات مثبت blade متغیر حلقه و یا Loop Variable است به کد زیر دقت کنید
@foreach ($users as $user) @foreach ($user->posts as $post) @if ($loop->parent->first) This is first iteration of the parent loop. @endif @endforeach @endforeach
loop یک متغیر حلقه است که یکسری پراپرتی داره که الان معرفی میکنم
$loop->index
شماره ایندکس حال حلقه رو میدهد
$loop->iteration
تکرار حلقه تا الان رو می گه
$loop->remaining
تعداد تکراری که مانده رو میگه
$loop->count
تعداد کل ارایه رو می گه
$loop->first
اولین عضو رو می گه
$loop->last
اخرین عضو ر میگه
این ها مهم ترین ها بودند ولی blade به همین جا ختم نمیشه و مسایلی مثل احراز هویت و.. هم داره که میشه بررسی کرد