قالب ها
قالب تیغه
Blade یک موتور قالب ساده و در عین حال قدرتمند است که با لاراول ارائه شده است.
برخلاف طرحبندیهای کنترلکننده، Blade بر اساس وراثت قالب
و
بخشها
هدایت میشود
.
همه قالب های Blade باید از
.blade.php
پسوند استفاده کنند.
تعریف طرح بندی تیغه
<!-- Stored in resources/views/layouts/master.blade.php --> <html> <head> <title>App Name - @yield('title')</title> </head> <body> @section('sidebar') This is the master sidebar. @show <div class="container"> @yield('content') </div> </body></html>
استفاده از طرح بندی تیغه
@extends('layouts.master') @section('title', 'Page Title') @section('sidebar') @@parent <p>This is appended to the master sidebar.</p>@stop @section('content') <p>This is my body content.</p>@stop
توجه داشته باشید که نماهایی که
extend
یک طرح Blade به سادگی بخش هایی از طرح را لغو می کند.
محتوای طرحبندی را میتوان با استفاده از
@parent
دستورالعمل در یک بخش در نمای کودک گنجاند و به شما امکان میدهد به محتوای یک بخش طرحبندی مانند نوار کناری یا پاورقی اضافه کنید.
گاهی اوقات، مانند زمانی که مطمئن نیستید که یک بخش تعریف شده است، ممکن است بخواهید یک مقدار پیش فرض را به دستورالعمل ارسال کنید
@yield
.
می توانید مقدار پیش فرض را به عنوان آرگومان دوم ارسال کنید:
@yield('section', 'Default Content')
سایر سازه های کنترل تیغه
بازتاب داده ها
Hello, {{ $name }}. The current UNIX timestamp is {{ time() }}.
بازتاب داده ها پس از بررسی وجود
گاهی اوقات ممکن است بخواهید یک متغیر را تکرار کنید، اما مطمئن نیستید که متغیر تنظیم شده است یا خیر. در اصل، شما می خواهید این کار را انجام دهید:
{{ isset($name) ? $name : 'Default' }}
با این حال، به جای نوشتن یک دستور سه تایی، Blade به شما امکان می دهد از میانبر راحت زیر استفاده کنید:
{{ $name or 'Default' }}
نمایش متن خام با بریس های فرفری
اگر نیاز به نمایش رشته ای دارید که در پرانتزهای فرفری پیچیده شده است، می توانید با قرار دادن پیشوند متن خود با یک
@
نماد از رفتار Blade فرار کنید:
@{{ This will not be processed by Blade }}
اگر نمیخواهید دادهها فرار کنند، میتوانید از نحو زیر استفاده کنید:
Hello, {!! $name !!}.
توجه: هنگام بازتاب محتوایی که توسط کاربران برنامه شما ارائه می شود بسیار مراقب باشید. برای فرار از هر گونه موجودیت HTML در محتوا، همیشه از نحو پرانتز دوگانه استفاده کنید.
اگر بیانیه ها
@if (count($records) === 1) I have one record!@elseif (count($records) > 1) I have multiple records!@else I don't have any records!@endif @unless (Auth::check()) You are not signed in.@endunless
حلقه ها
@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
از جمله نماهای فرعی
@include('view.name')
همچنین می توانید آرایه ای از داده ها را به نمای موجود ارسال کنید:
@include('view.name', ['some' => 'data'])
رونویسی بخش ها
برای بازنویسی کامل یک بخش، می توانید از
overwrite
عبارت زیر استفاده کنید:
@extends('list.item.container') @section('list.item.content') <p>This is an item of type {{ $item->type }}</p>@overwrite
نمایش خطوط زبان
@lang('language.line') @choice('language.line', 1)
نظرات
{{-- This comment will not be in the rendered HTML --}}