رتبه موضوع:
  • 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 |‌ مدیریت کانال تلگرام
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  خطای نصب لاراول dmbehrouz 1 52 11-27-2017, 10:34 AM
آخرین ارسال: jergis
  صفحه بندی در لاراول ۵.۵ sadaf 0 73 10-26-2017, 09:26 PM
آخرین ارسال: sadaf
  سرور برای لاراول mahmood_20050 0 51 10-24-2017, 10:00 AM
آخرین ارسال: mahmood_20050
  گرفتن آپدیت های وب هوک تلگرام در لاراول Mr.AMiR 6 279 09-19-2017, 04:30 AM
آخرین ارسال: Bvk.Programmer
  مشکل افت سرعت وقتی از لاراول به جای php استفاده می کنم Zahir 1 118 08-31-2017, 08:40 AM
آخرین ارسال: imanghafoori
  آموزش اعتبار سنجی در لاراول 5 alihossein 5 1,359 07-30-2017, 08:47 AM
آخرین ارسال: shima71
  آموزش فارسی لاراول ۵ alihossein 7 3,949 07-28-2017, 06:44 PM
آخرین ارسال: shima71
  انتقال سایت mvc به لاراول miladhassan 1 103 07-26-2017, 09:01 AM
آخرین ارسال: fery
Question راه اندازی لاراول روی سیستم افلاین؟ fery 0 67 07-26-2017, 08:55 AM
آخرین ارسال: fery
Sad مشکل در ایجاد وبلاگ در لاراول 5.4 itroz 0 103 07-05-2017, 05:03 PM
آخرین ارسال: itroz

پرش به انجمن:


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

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

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