TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 611 subscribers
Post #285 346
فصل سه - Views

بخش دوم - آشنایی با دستورات 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')
...
@endguest


5- دستورات 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
.
  • ❤ 1
  • 👍 1
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →