Bài 7: Blade template trong Laravel 5.x

Admin
09-04-2017

1. Giới thiệu về Blade Template

Blade Template là một templating engine giúp biên dịch những cú pháp nhất định thành code PHP tiện dụng hơn cho người dùng.

Trong Laravel, các file dùng cho Blade có phần tên đuôi file là .blade.php và được lưu trong thư mục mặc định resources/views(với laravel 5.x) và app/views(laravel 4.x).

2. Cú pháp trong Blade Template

Trước tiên bạn tạo vào thư mục resources/view/ và tạo 1 file tên test-blade.blade.php

Trong Route bạn thêm đoạn code sau:

Route::get('test-blade', 'DemoController@testBlade' );

Bây giờ bạn tạo 1 action trong DemoController để xử lý request và truyền biến qua 1 View Blade chỉ định

public function testBlade(){
   return view('test-blade', ['name' => 'CongNghe5s']);
}

Trong View, thông thường để hiển thị giá trị của biến bạn sẽ sử dụng echo trong php

<?php echo $name; ?>

Truy cập URL http://localhost/congnghe5s-laravel/test-blade bạn sẽ nhận được kết quả:

Khi sử dụng Blade Template bạn chỉ cần viết

{{ $name }}
//Xuất toàn bộ nội dung kể cả tag HTML, Javascript ....
// Hoặc
{!! $name !!}
// Biên dịch mã HTML, Javascript .....

Cấu trúc điều khiển IF - ELSE

@if (isset($name))
    {{ $name }}
@else
    Tên không tồn tại
@endif

Cấu trúc vòng lặp 

@for ($i = 0; $i < 10; $i++)
    Giá trị là: {{ $i }}
@endfor
 
@foreach ($users as $user)
    <p>User:  {{ $user->id }}</p>
@endforeach
 
@while (true)
    <p>Luôn luôn lặp</p>
@endwhile

Biến $loop trong vòng lặp foreach

Từ Laravel 5.3 có hỗ trợ xử lý vòng lặp dễ dàng hơn bao giờ hết khi thêm biến $loop. Nó gồm một số thuộc tính:

first: Trả về true nếu là phần tử đầu tiên trong mảng
last: Trả về true nếu là phần tử của cuối của mảng
index: Vị trí của phần tử trong vòng lặp, phần tử đầu tiên sẽ được đánh số thứ tự là 1
count: Tổng số phần tử của mảng
remaining: Số phần tử còn lại của mảng. Giả sử ta đang ở vị trí index là 5 thì remaining sẽ là n – 5.
parent: Trả về 1 tham chiếu đến phần tử cha của $loop trong vòng lặp

Tổng kết:

Bài này mình hướng dẫn các bạn sử dụng Blade Template trong Laravel, Nếu gặp khó khăn gì bạn có thể comment bên dưới. Chúc các bạn thành công!