template engine
mạnh mẽ. Trong Laravel mặc định sử dụng Blade Template engine
Engine để render
view thành các nội dung file html
để trả về người dùng.Blade template
:
<?php ?>
của PHP thuần trong views.cache
cho đến khi file Blade bị thay đổi. Các file cache view được lưu trữ trong app\storage\views\{view_hash_id}.php
.blade.php
. Ví dụ: gioithieu.blade.php
, lienhe.blade.php
, ...resources/views
. Nếu muốn thay đổi đường dẫn mặc định, có thể hiệu chỉnh trong file config/view.php
'paths' => [ resource_path('views'), // Đường dẫn đến thư mục `resources/views`, có thể tùy biến thành thư mục khác nếu bạn muốn! ],
Blade Template engine
blade templete engine
trong laravel 5.xblade syntax
route
được gởi từ request GET
thông qua url: http://127.0.0.1:8000/hello
{{ $variable }}
giá trị (value)
của biến (variables)
với giá trị (value) được xuất ra với định dạng escape chuỗi HTML/JS
[/su_note]
giá trị (value)
của biến (variables)
, chúng ta sử dụng cú pháp {{
và }}
dùng để wrap những phần mà bạn muốn PHP xuất ra view. {{ }}
thì Blade tự động escape cho chúng ta.
{{ $variable }}
là tương đương với <?= htmlentities($variable) ?>
$hoten = "<b>Dương Nguyễn Phú Cường</b>"; // View `hello.blade.php` // Xuất giá trị $hoten escapsed {{ $hoten }}
<!-- HTML được xuất ra (rendered) --> <b>Dương Nguyễn Phú Cường</b>
{!! $variable !!}
giá trị (value)
của biến (variables)
với giá trị (value) được xuất ra với định dạng không escape chuỗi HTML/JS
[/su_note]
giá trị (value)
của biến (variables)
, chúng ta sử dụng cú pháp {!!
và !!}
dùng để wrap những phần mà bạn muốn PHP xuất ra view. {!! $variable !!}
thì Blade không tự động escape cho chúng ta.
{{ $variable }}
là tương đương với <?= ($variable) ?>
$hoten = "<b>Dương Nguyễn Phú Cường</b>"; // View `hello.blade.php` // Xuất giá trị $hoten không escapse {!! $hoten !!}
<!-- HTML được xuất ra (rendered) --> <b>Dương Nguyễn Phú Cường</b>
@{{ $variable }}
Blade
bỏ qua và output toàn bộ chuỗi
[/su_note]
@{{
và }}
dùng để wrap những phần mà bạn muốn PHP xuất ra view. $hoten = "<b>Dương Nguyễn Phú Cường</b>"; // View `hello.blade.php` // Yêu cầu blade bỏ qua và output toàn bộ chuỗi @{{ $hoten }}
<!-- sử dụng cú pháp @{{ }}, blade sẽ bỏ qua và output toàn bộ "{{ $hoten }}" --> @{{ $hoten }}
{{-- $variable --}}
Blade
[/su_note]
Blade
, chúng ta sử dụng cú pháp {{-- --}}
$hoten = "<b>Dương Nguyễn Phú Cường</b>"; // View `hello.blade.php` {{-- $hoten, ghi chú khi sử dụng code, bla, bla, ... --}}
if, else
, foreach
, while
…
@if
sẽ được compile thành <?php if ($condition) : ?>
.
<?php $gioitinh = 0; //0: Nam; 1: Nữ; 2: Không công bố ?> Giới tính là: @if ($gioitinh == 0) {{ 'Là Nam!' }} @elseif ($gioitinh == 1) {{ 'Là Nữ' }} @else {{ 'Không công bố' }} @endif
@unless
tương tự như @if
, và nó @unless ($condition)
sẽ tương đương với @if (!$condition)
@unless (Auth::check()) Vui lòng đăng nhập để thực hiện chức năng này... @endunless
@for
, @foreach
, và @while
:
Tương đương với PHP thuần là for, foreach , while
@for ($i = 0; $i < 10; $i++) Giá trị hiện tại là {{ $i }} @endfor @foreach ($users as $user) <p>Đây là user tên {{ $user->fullname }}</p> @endforeach @while (true) <p>Vòng lập vô tận, lập mãi mãi...</p> @endwhile
đục lỗ (chừa sẵn chỗ - placeholder)
, để các view con khi kế thừa layout master có thể gắn giao diện vào.đục lỗ (chừa sẵn chỗ - placeholder)
, chúng ta sẽ sử dụng cú pháp @yield('placeholder_name')
của Blade
để thực hiệnmaster.blade.php
<!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Sunshine | @yield('title')</title> </head> <body> <!-- Main content --> <div class="container-fluid"> <div class="row"> <!-- Content --> <main role="main" class="col-md-9 ml-sm-auto col-lg-10 px-4"> @yield('content') </main> <!-- End content --> </div> </div> <!-- End main content --> </body> </html>
layout/partials/navbar.blade.php
: sẽ quy định giao diện về thanh điều hướng navbarlayout/partials/sidebar.blade.php
: sẽ quy định giao diện về thanh bên cạnh sidebar@include('duong_dan_den_file_view_can_include')
<!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Sunshine | @yield('title')</title> </head> <body> <!-- Navbar --> @include('layouts.partials.navbar') <!-- End Navbar --> <!-- Main content --> <div class="container-fluid"> <div class="row"> <!-- Sidebar --> @include('layouts.partials.sidebar') <!-- End sidebar --> <!-- Content --> <main role="main" class="col-md-9 ml-sm-auto col-lg-10 px-4"> @yield('content') </main> <!-- End content --> </div> </div> <!-- End main content --> </body> </html>
@extends('ten_view_cha')
@section('placeholder_name') ... @endsection
@extends('layouts.master') @section('title') Trang quản trị hệ thống @endsection @section('content') <h1>Hello, đây là nội dung từ view con (child view) được nhúng vào `section('content')`</h1> @endsection
Cùng nhau học tập, khám phá các kiến thức nền tảng về Lập trình web, mobile, database nhé.
Nền tảng kiến thức - Hành trang tới tương lai hân hạnh phục vụ Quý khách!
Khám phá, trải nghiệm ngay
Vui lòng đăng nhập để gởi bình luận!
Đăng nhậpChưa có bình luận nào!