بخش دوم - آشنایی با دستورات Blade - قسمت اول
همانطور که در قسمت های قبل گفته شد View ها یا فایل های نمایشی مثل فایل های HTML در پوشه resources/views قرار می گیرند و فرمت آنها .blade.php می باشد.
با اجرای دستور زیر می توانید یک فایل view ایجاد کنید:
php artisan make:view greeting
دستور بالا یک فایل با فرمت .blade.php را در مسیر resources/views با نام greeting ایجاد می کند. همچنین می توانید این عمل را به صورت دستی انجام دهید.
در لاراول به واسطه موتور قالب سازی Blade به جای نوشتن مستقیم کد های PHP از دستورات Blade استفاده می کنیم تا ساختار تمیزتر، ساده تر و خواناتری داشته باشیم.
در ادامه با دستورات Blade آشنا می شویم:
1- دستور {{ x }} و {!! x !!}
از {{ }} برای چاپ محتوای متغیرها و دادهها در فایلهای قالب استفاده میشود. این نوع استفاده معمولاً برای جلوگیری از حملات XSS (Cross-Site Scripting) است و محتوای داخل {{ }} به صورت امن نمایش داده میشود.
<h1>Hello, {{ $name }}!</h1>م.تور Blade به صورت پیشفرض دادههای داخل {{ }} را escape میکند. این به این معنی است که هر محتوایی که شامل کاراکترهای ویژه HTML باشد به صورت امن نمایش داده میشود.
اگر میخواهید دادهای را بدون escape کردن نمایش دهید، میتوانید از سه علامت تعجب {{{ }}} یا تابع {!! !!} استفاده کنید. اما باید خیلی مراقب باشید که این نوع استفاده ممکن است منجر به حملات XSS شود اگر دادهها به درستی اعتبارسنجی نشده باشند.
<h1>Hello, {!! $name !!}!</h1>همچنین می توانید خروجی توابع را نیز نمایش دهید:
<p>The current UNIX timestamp is {{ time() }}.</p>2- دستورات if، elseif، else، unless
دستورات بالا همانند دستورات شرطی PHP عمل میکنند.
@if ($user->isAdmin())
<p>Welcome, admin!</p>
@elseif ($user->isModerator())
<p>Welcome, moderator!</p>
@else
<p>Welcome, user!</p>
@endif
دستور @unless برای اجرای یک بلوک کد در صورتی که یک شرط برقرار نباشد، استفاده میشود. این دستور معکوس دستور @if است.
@unless ($user->isGuest())
<p>Welcome back, {{ $user->name }}!</p>
@endunless
3- دستورات isset و empty
این دستورات برای بررسی خالی بود یا تعریف شدن یک مقدار استفاده می شوند همانند توابع همان آنها در PHP.
@isset($records)
// $records is defined and is not null...
@endisset
@empty($records)
// $records is "empty"...
@endempty
4- دستورات auth و guest
برای نمایش یا عدم نمایش محتوا بر اساس وضعیت احراز هویت (authentication) کاربر استفاده میشوند. این دستورات به شما امکان میدهند تا به سادگی محتوای خاصی را برای کاربران احراز هویت شده یا کاربران مهمان (غیر احراز هویت شده) نمایش دهید.
@auth
// The user is authenticated...
@endauth
@guest
// The user is not authenticated...
@endguest
همچنین این دو دستور پارامتری که نام گارد احراز هویت می باشد را نیز دریافت میکنند تا به وسیله آن وضعیت احراز هویت را بررسی کنند.
در فصل های مربوطه با گارد ها آشنا می شویم.
@auth('admin')
...
@endauth
@guest('admin')
...
@endguest5- دستورات switch case
این دستورات نیز همانند switch case در PHP هستند:
@switch($i)
@case(1)
First case...
@break
@case(2)
Second case...
@break
@default
Default case...
@endswitch
6- حلقه ها
حلقه ها در Blade نیز مانند حلقه ها در 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
@while (true)
<p>I'm looping forever.</p>
@endwhile
دستور جدیدی با نام forelse وجود دارد تا در صورت خالی بودن متغیر شرط دیگری اجرا شود.
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
7- دستورات continue و break
این دستورات برای کنترل حلقه ها استفاده می شوند، همچنین می توانند یک شرط برای ورودی دریافت کنند و در صورت برقرار بودن شرط اجرا شوند:
@foreach ($users as $user)
@continue($user->type == 1)
<li>{{ $user->name }}</li>
@break($user->number == 5)
@endforeach
#laravel #فصل_۳
@AmirhDeveloper
.