Toidicode.com

Toidicode.com

BASIC TO ADVANCE

Bài viết bạn đang xem là tài liệu của Laravel 5x (Giờ đã ngừng support). Bạn có thể xem tài liệu của Laravel mới nhất và đầy đủ tại đây.

Bài 27: Bảy directives hữu dụng trong blade template có thể bạn chưa biết?

Sau một thời gian im hơi lặng bóng với series PHP Laravel Framwork, thì ngày hôm nay mình đã quay trở lại và giới thiệu với mọi người một số directives hữu dụng trong Blade template mà có thể bạn chưa biết

Chú ý các directive dưới đây chỉ dùng được cho phiên bản Laravel 5.5 trở lên thôi, riêng phần 6 và 7 chỉ Laravel 5.6 trở lên mới có thể sử dụng.

1,  @includeFirst().

Nếu như trước đây bạn cần phải viết một đoạn code khá là dài để kiểm tra view có tồn tại hay không thì mới include và ngược lại...

VD1:

@if(view()->exists('view1'))
    @include('view1')
@else
    @include('view2')
@endif

Thì thay vì viết dài như thế bạn có thể sử dụng directive @includeFirst() cho ngắn gọn với cú pháp như sau:

@includeFirst(['view1, view2, ..., viewN'], data)

Trong đó:

  • view1, view2, ... là các view mà chúng ta muốn include. Blade sẽ chỉ include duy nhất một view đúng đầu tiên mà nó check được.
  • data là một mảng chứa dữ liệu truyền vào view.

VD2: Rút ngắn ví dụ 1 với @includeFirst()

@includeFirst(['view1', 'view2']);

2, @includeIf()

Nếu bạn muốn kiểm tra view tồn tại thì mới include thì hãy sử dụng @includeIf() thay vì phải dùng if directive để check.

VD3:

@includeIf('view', ['key' => 'data'])

3, @includeWhen()

Nếu như bạn muốn có một tham số để check xem view này có nên được include hay không thì @includeWhen() sẽ giúp bạn.

VD4:

@include($flag, 'view', ['some' => 'data'])

Trong ví dụ trên nếu như $flag trả về true thì nó mới include view.

4, @auth.

Thông thường để check auth trong blade template thì chúng ta thường sử auth() helper để check.

VD5:

@if(auth()->user())
    // The user is authenticated.
@endif

Nhưng nếu bạn muốn ngắn gọn và minh bạch hơn thì có thể sử dụng directive @auth trong blade template.

VD5:

@auth
    // The user is authenticated.
@endauth

5, @guest.

Tương tự như @auth() directive thì đối với guest blade cũng cung cấp cho chúng ta directive @guest.

VD6:

// normal
@if(auth()->guest())
    // The user is not authenticated.
@endif

// shortcode
@guest
    // The user is not authenticated.
@endguest

Và nó cũng có cơ chế else

@guest
    // The user is not authenticated.
@else
    // The user is authenticated.
@endguest

6, @csrf.

Thay vì phải dùng:

{{ csrf_field() }}

như cũ thì bạn có thể chuyển đổi nó về dạng directive cho ngắn gọn như sau:

@csrf

7, @method().

Tương tự bạn cũng có thể thay thế:

{{ method_field('DELETE') }}

về dạng directive như sau:

@method('DELETE')

 

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Vũ Thanh Tài

About author
The best way to learn is to share
Xem tất cả bài đăng

0 Comments

Bài viết chưa có ai bình luận, hãy là người đầu tiên đi bạn!

Bình luận

Captcha