ما میخواهیم به پنج دستور blade لاراول که شما میتوانید برای ساده کردنقالبهای خود استفاده کنید نگاهی بندازیم. اگر شما در این زمینه تازهکار هستید، ایننکات به شما کمک خواهند کرد تا ویژگیهای عالی blade، موتور تمپلیت استفاده در لاراول را کشفکنید.
۱. چک کردن اینکه کاربر لاگین کرده یا نه
وقتی می خواهید چک کنین که آیا کاربر لاگین شده یا نه می توانید خالی بودن user را چک کنید:
@if(auth()->user()) // The user is authenticated. @endif
با این حال لاراول دستوری برای این کار تدارک دیده که تا حدودی کار را راحت و واضح تر انجام می دهد:
@auth // The user is authenticated. @endauth
۲. چک کردن اینکه کاربر لاگین نکرده (مهمان) است یا نه
مورد بالا را بر عکس کنیم می خواهیم چک کنیم آیا کاربر مهمان است یا خیر . به طور معمول این کد را استفاده می کنیم:
@if(auth()->guest()) // The user is not authenticated. @endif
ولی لاراول دستوری هم برای این کار آماده کرده است:
@guest // The user is not authenticated. @endguest
حتی می توانیم دو دستور بالا را به این شکل با هم ترکیب کنیم. یعنی اگر لاگین نبود فلان کار را انجام بده والا اگر لاگین بود فلان کار دیگر را:
@guest // The user is not authenticated. @else // The user is authenticated. @endguest
۳. اگر View اول موجود بود آن را Include کن والا دومی را
گاهی اوقات نیاز است فایل blade را داخل فایل blade دیگر وارد (include) کنیم. مثلا وقتی سایت از چند قالب مختلف استفاده می کند. حالا باید چک کنیم اگر فایل اولی موجود بود آن را اینکلود کند والا برود سراغ گزینه دوم. روش معمولی به این شکل است :
@if(view()->exists('first-view-name')) @include('first-view-name') @else @include('second-view-name') @endif
ولی اینجا هم دستور خیلی کوتاه تر و واضح تری وجود دارد که همان کار را می کند:
@includeFirst(['first-view-name', 'second-view-name']);
۴.Include کردن یک View بر اساس شرط If
گاهی نیاز داریم یک View را فقط زمانی include کنیم که داده ی خاصی موجود باشد یا شرایط خاصی حاکم باشد والا نیازی به آن view نداریم. مثلا اگر کاربر لاگین بود اطلاعات کاربری اش را نشان دهیم والا نیاز نیست.
کدی که معمولا با دستور @if
می نویسیم به این شکل است:
@if($post->hasComments()) @include('posts.comments') @endif
ولی لاراول دستور @includeWhen
را برایمان حاضر کرده است تا خیلی راحت تر به مقصود برسیم :
@includeWhen($post->hasComments(), 'posts.comments');
۵.Include کردن یک View وقتی موجود باشد
اگر سایت شما دارای قالب های سفارشی است یا به صورت داینامیک فایل های قالب ایجاد می شوند آنگاه قبل از نمایش باید از وجود داشتن آن view مطمئن شوید. روش معمول :
@if(view()->exists('view-name')) @include('view-name') @endif
و روش کوتاه تر :
@includeIf('view-name')
موارد بیشتر را می توانید در سایت رسمی لاراول دنبال کنید و قابلیت های کدنویسی تان را در محیط Blade بالاتر ببرید.