DANH MỤC: Laravel

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 laugh

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')

 

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

Biển học vô biên, quay đầu là dại!

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia