رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش blade در لاراول 5
#1
کار با موتور قالب Blade و ایجاد Layout 


در فریم ورک لاراول برای ایجاد view ها میتونید از موتور قالب Blade هم استفاده کنید که کارتون رو در ایجاد layout ها و کدنویسی خیلی آسون میکنه. شما می تونید بخش هایی از وبسایت از جمله هدر و فوتر و منو ها و ... که در تمام صفحات وبسایت یکی هستن را داخل یک فایل layout ایجاد کرده و در فایل های دیگر قابل ارث بردن هست. این فایل ها با فرمت blade.php. ایجاد می شوند.

تعریف یک Layout ساده 

در مسیر resources/views یک پوشه به نام layouts ایجاد کرده و فایل master.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


اکثر دستورات blade با علامت @ شروع می شوند. با استفاده از دستور yield می توانیم یک بخش را ایجاد کنیم که بعدا در فایل هایی که از آن ارث برده می شوند بتوانید محتوایی که در هر فایل متفاوت است را در ان قرار دهیم. نحوه استفاده از layout بالا را در فایلی دیگر مشاهده کنید :

کد پی‌اچ‌پی:
@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 


همانطور که مشاهده کردید با استفاده از دستور extends می توانید فایل layout را به صفحه اضافه کنید. نحوه آدرس دهی هم به این صورت است که بین دایرکتوری و نام فایل ویو نقطه قرار می دهیم.

با استفاده از دستور section که نام yield مورد نظر را به آن می دهیم می توانیم محتوای جدید را داخل آن قرار دهیم. در پایان هم باید stop را بنویسیم. yield ها در فایل layout هیچ محتوایی ندارند اما اگر بخواهیم بخشی را تعریف کنیم که در فایل layout هم محتو ادشته باشند باید از section استفاده با این تفاوت که در layout باید در انتها show قرار دهیم. بخش ها در فایل به ارث برده شده override می شوند برای اینکه بتوانیم محتوای فایل والد رو هم داشته باشیم کافیه در ابتدا یا انتهای محتوای جدید دستور parent را اضافه کنیم. در مثال بالا بخش sidebar به این صورت است.

برای بخش yield می توانیم یک محتوای پیش فرض هم تعیین کنیم مثلا 

کد پی‌اچ‌پی:
@yield('section''Default Content'


چاپ داده یا متغیر ها در blade

با استفاده از بلاک های دو آکولاده می توانیم یک متغیر یا عبارت قابل چاپ را در صفحه چاپ کنیم.


کد پی‌اچ‌پی:
Hello, {{ $name }}.
 
The current UNIX timestamp is {{ time() }}. 


همچنین اگر متغیری با نام مورد نظر ست نشده بود یک مقدار پیش فرض برای چاپ در نظر بگیریم تا باعث ایجاد خطا در صفحه نشود.


کد پی‌اچ‌پی:
{{ $name or 'Default' }} 


دوآکولاد در blade تمامی دستورات html را escape میکند مانند دستور htmlentities در php عمل میکند. اگر نخواهیم داده ها escape شوند به این صورت انجام دهید :

کد پی‌اچ‌پی:
Hello, {!! $name !!}. 

دستورات شرطی و حلقه ها هم به صورت های زیر قابل نوشتن هستند :

کد پی‌اچ‌پی:
@if (count($records) === 1)
 
   I have one record!
@elseif (
count($records) > 1)
 
   I have multiple records!
@else
 
   I don't have any records!
@endif
@foreach ($users as $user)
    <p>This is user {{ $user->id }}</p>
@endforeach 


برای دیدن مثال های بیشتر به اینجا مراجعه کنید


اینکلود کردن فایل view در view دیگر
مثلا در یک فایل ویو فرم لاگین را طراحی کرذه ایم و می خواهیم آن را در چند صفحه استفاده کنیم کافیست آن را مانند مثال زیر در فایل های مورد نظر اینکلود کنیم :

کد پی‌اچ‌پی:
@include('view.name')
 
@include(
'view.name', ['some' => 'data']) 


در مثال بالا view نام پوشه و name نام فایل ویو مورد نظر است. همچنین می توانیم دیتا هم به آن فایل ارسال کنیم.


توضیحات در Blade
برای نوشتن کامنت یا توضیحات می توانید به صورت زیر عمل کنید :

کد پی‌اچ‌پی:
{{-- This comment will not be in the rendered HTML --}} 


برای اطلاعات بیشتر به اینجا مراجعه کنید
(با تشکر از حامد آریان)
قوانین انجمن لاراولیستا  | شماره تماس :‌09124783045 |‌ تلگرام :‌ 09377869283 |‌ مدیریت کانال تلگرام
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل افت سرعت وقتی از لاراول به جای php استفاده می کنم Zahir 0 27 08-11-2017, 08:15 PM
آخرین ارسال: Zahir
  گرفتن آپدیت های وب هوک تلگرام در لاراول Mr.AMiR 4 117 08-06-2017, 09:51 AM
آخرین ارسال: maryam_f123
  آموزش اعتبار سنجی در لاراول 5 alihossein 5 1,128 07-30-2017, 08:47 AM
آخرین ارسال: shima71
  آموزش فارسی لاراول ۵ alihossein 7 3,546 07-28-2017, 06:44 PM
آخرین ارسال: shima71
  انتقال سایت mvc به لاراول miladhassan 1 52 07-26-2017, 09:01 AM
آخرین ارسال: fery
Question راه اندازی لاراول روی سیستم افلاین؟ fery 0 25 07-26-2017, 08:55 AM
آخرین ارسال: fery
Sad مشکل در ایجاد وبلاگ در لاراول 5.4 itroz 0 60 07-05-2017, 05:03 PM
آخرین ارسال: itroz
  بهترین پکیج acl برای لاراول چیست homeily@gmail.com 3 231 05-08-2017, 09:27 AM
آخرین ارسال: Geppeto
  لینک فایل های css و js در لاراول saeed.rahgooy@gmail.com 1 76 05-01-2017, 07:50 PM
آخرین ارسال: zootech
  ساخت authentication شخصی یا استفاده از authentication لاراول meysam_biz 0 113 03-19-2017, 05:38 PM
آخرین ارسال: meysam_biz

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

درباره انجمن فریم ورک لاراول

انجمن لاراولیستا به عشق توسعه دهنده ها و علاقمندان به این فریم ورک محبوب ایجاد شده و امیدواریم با نظرات خوبتون ما رو در بهبود کار یاری کنید. در ضمن خیلی هم خوشحال میشیم شما هم در توسعه این انجمن سهمی داشته باشید.