23/08/2023

Các directives cơ bản trong Laravel Blade

 là các phần quan trọng giúp bạn thực hiện các thao tác như điều kiện, vòng lặp, xuất dữ liệu, kế thừa giao diện và nhiều tác vụ khác một cách dễ dàng. Dưới đây là một số directives phổ biến mà bạn thường sẽ sử dụng trong Laravel Blade:


  1. @if, @else, @elseif, @endif: Sử dụng để thực hiện câu lệnh điều kiện.
  2. @unless, @endunless: Tương tự như @if, nhưng thực hiện điều kiện phủ định.
  3. @foreach, @endforeach: Dùng để thực hiện vòng lặp qua một mảng hoặc collection.
  4. @for, @endfor: Dùng để thực hiện vòng lặp theo số lần cụ thể.
  5. @while, @endwhile: Sử dụng để thực hiện vòng lặp khi điều kiện còn đúng.
  6. @switch, @case, @default, @endswitch: Dùng để thực hiện câu lệnh switch-case.
  7. @include('view.name'): Kết hợp một view vào trong view hiện tại.
  8. @yield('section'), @section('section'), @show, @endsection: Sử dụng cho việc kế thừa và quản lý các phần nội dung của các view.
  9. @extends('layout.name'): Kế thừa layout cho view hiện tại.
  10. @stack('scripts'), @push('scripts'), @endpush: Sử dụng để quản lý các phần kịch bản (scripts) trong layout.
  11. @auth, @guest, @endauth, @endguest: Dùng để kiểm tra trạng thái xác thực của người dùng.
  12. @verbatim, @endverbatim: Ngăn Blade xử lý mã HTML bên trong chúng.
  13. @csrf: Sinh ra mã CSRF token để bảo vệ khỏi tấn công Cross-Site Request Forgery.
  14. @inject: Dùng để tiêm các dependency vào view.



Các directives trên đây là chỉ một số ví dụ cơ bản và phổ biến. Blade cung cấp nhiều directives khác giúp bạn xây dựng giao diện và tương tác với dữ liệu một cách linh hoạt trong ứng dụng Laravel của bạn.

16/08/2023

12 Directives hay dùng trong Laravel Blade

 Như các bạn đã biết Laravel Blade là một công cụ để thể hiện view trong Laravel, hay nói cách khác nôm na khi chạy lên chương trình thì nó sẽ như một file HTML vậy. Chúng được tạo bởi các file có đuôi là .blade.php và nằm trong thư mục resource/views của framework Laravel. Và hôm nay mình sẽ giới thiệu 12 Directives mà bạn sẽ có thể hay phải dùng tới khi làm việc với Laravel Blade nhé, bắt đầu nào.


@include

Đầu tiên là phải kể đến @include một Directive hay dùng nhất khi chúng ta làm việc với view blade, nó cho phép đưa một view ở một file blade khác vào view này của bạn. Ví dụ một trang có 3 phần cơ bản là header.blade.phpcontent.blade.phpfooter.blade.php thì ở trong file content.blade.php ta có thể include phần view header và footer như sau:

@include('header')

    <body>
        // your content
    </body>

@inlcude('footer')

Hoặc bạn cũng có thể truyền kèm theo một mảng dữ liệu qua view như sau:

@include ( 'partials.sidebar' , [ 'menu' => $menu])

@push and @stack

Laravel Blade cho phép xác định một trình giữ chỗ được gọi stack và sau đó đẩy các giá trị sang stack đó. Điều này có thể rất hữu ích để gọi một hoặc nhiều file javascript theo yêu cầu của từng trang view khác nhau.

@push('scripts')
    <script src="/example.js"></script>
@endpush
<head>
    <!-- Head Contents -->

    @stack('scripts')
</head>

@php

Đối với các mã PHP thì Blade cho phép sử dụng trong View của Laravel, chúng ta chỉ cần mở mã PHP bằng các @php và đóng lại khối mã PHP đó bằng @endphp là ok, đơn giản phải không 

@php
 // code php here
@endphp

@hasSection

Khi tạo bố cục phức tạp trong Laravel Blade, bạn có thể kiểm tra xem một phần có nội dung bằng cách sử dụng @hasSection để thực hiện việc kiểm tra này.

@hasSection('navigation')
    <div class="pull-right">
        @yield('navigation')
    </div>

    <div class="clearfix"></div>
@endif

@each

@each của Laravel Blade cho phép bạn kết hợp vòng lặp và đưa vào một dòng. Ví dụ:

@each('view.name', $jobs, 'job')

Trong đó, view.name là phần view sẽ hiển thị cho từng phần của $job, còn $job sẽ là biến dùng để lặp để gán từng phần vào biến job. Ngoài ra bạn cũng có thể truyền đối số thứ tư để hiển thị view nếu đối tượng hoặc mảng đó rỗng

@each('view.name', $jobs, 'job', 'view.empty')

@includeWhen

@includeWhen là phần mở rộng của @include. Lệnh này sẽ bao gồm một view nếu điều kiện đã cho là đúng.

@includeWhen ($ isUserAdmin, 'users.admin_card' , [ 'user' => $ user])

Trong ví dụ trên thì @includeWhen() sẽ kiểm tra giá trị của biến $isUserAdmin và nếu biến đó đúng, nó sẽ bao gồm cả view của riêng quản trị viên là users.admin_card.

@json

Đôi khi bạn có thể chuyển một mảng vào view của mình với ý định hiển thị nó dưới dạng JSON để khởi tạo một biến JavaScript. Ví dụ:

<script>
    var app = <?php echo json_encode($array); ?>;
</script>

Tuy nhiên, thay vì gọi thủ công json_encode, bạn có thể sử dụng lệnh @json của Blade. Lệnh này chấp nhận các đối số tương tự như json_encode của PHP

<script>
    var app = @json($array);

    var app = @json($array, JSON_PRETTY_PRINT);
</script>

@forelse

Ví dụ giờ bạn phải hiển thị hết tên của một danh sách người dùng thì bạn chỉ việc dùng @foreach để lặp đúng không? Nhưng nếu thêm yêu cầu là phải kiểm tra xem danh sách đó có dữ liệu hay chưa thì bạn lại thêm câu điều kiện @if vào như sau:

@if($users->count() > 0)
	@foreach($users as $user)
		{{ $user->name }}
	@endforeach
@else
	No Users Found	
@endif

Tuy nhiên, trong Laravel Blade @forelse sẽ làm code của bạn gọn gàng hơn rất nhiều đó ))

@forelse($users as $user)
	{{ $user->name }}
@empty
	No Users Found
@endforelse

// đơn giản và clear hơn rất nhiều đúng không :P

@verbatim

Nếu bạn đang hiển thị các biến JavaScript trong một phần lớn của view, bạn có thể gói HTML trong @verbatim để bạn không phải đặt tiền tố cho mỗi câu lệnh echo Blade bằng một ký hiệu @ nữa

@verbatim
    <div class="container">
        Hello, {{ name }}.
    </div>
@endverbatim

@isset and @empty

Thông thường trong PHP chúng ta sử dụng hàm isset() và empty() để kiểm tra xem giá trị của biến có trống hay không thì trong Laravel Blade sẽ cung cấp @isset() và @empty() để thay thế mã PHP thông thường.

@if(isset($users))
// your logic here
@endif

@if(empty($users))
// your logic here
@endif

Trong Blade sẽ thành như sau:

@isset($users)
// your logic here
@endisset

@empty($users)
// your logic here
@endempty

@inject

@inject được sử dụng để truy xuất từ Service Container của Laravel và đưa vào view của bạn.

Đối số đầu tiên được truyền cho @inject này là một tên biến mà service sẽ được đặt vào, trong khi đối số thứ hai là Service mà bạn muốn gọi đến.

@inject('menu', 'App\Services\MenuService')

// then in your view

{!! $menu->render() !!}

@csrf and @method

Khi bạn tạo Form trong Blade thì cần dùng @csrf để khai báo trường CSRF ẩn dùng để xác thực yêu cầu.

<form method="POST" action="/profile">
    @csrf

    ...
</form>

Bên cạnh đó thì từ khi HTML không hỗ trợ các method PUT, PATCH và DELETE thì trong Blade bạn sẽ cần phải thêm một method ẩn _method để spoof những động từ HTTP. Lệnh @method trong Blade có thể tạo trường này cho bạn:

<form action="/foo/bar" method="POST">
    @method('PUT')

    ...
</form>

Trên đây 12 Directives trong số rất nhiều Directives khác của Laravel Blade mà mình đề cập tới, mong qua bài này sẽ giúp được cho các bạn ít nhiều khi làm project của mình. Cảm ơn các bạn đã đọc bài, xin chào và hẹn gặp lại!

29/07/2023

Leonardo.Ai là gì ? Cách đăng ký tài khoản Leonardo.Ai

Trong thế giới phát triển nhanh chóng và được thúc đẩy bởi công nghệ ngày nay, các doanh nghiệp và tổ chức không ngừng tìm cách cải thiện quy trình làm việc và tăng năng suất. Một trong những công cụ mới nhất đã trở nên phổ biến trong những năm gần đây là Leonardo AI. 
Công cụ mạnh mẽ này tận dụng trí tuệ nhân tạo để tự động hóa các nhiệm vụ khác nhau, tiết kiệm thời gian và nguồn lực cho doanh nghiệp. Trong bài đăng trên blog này, chúng ta sẽ khám phá những lợi ích của việc sử dụng Leonardo AI, cách thức hoạt động, các tính năng của nó, các phương pháp hay nhất để sử dụng nó, cách nó có thể được tích hợp với các công cụ và nền tảng khác cũng như các trường hợp sử dụng trong thế giới thực cho công cụ mạnh mẽ này.

Chúng ta cùng tìm hiểu về Leonardo.Ai xem nó thực chất là gì, nó hoạt động ra sao và nó có thể làm được những gì nhé.



Leonardo.Ai là gì ?

Leonardo.Ai là một nền tảng tạo hình ảnh do AI cung cấp cho phép người dùng tạo hình ảnh từ lời nhắc (Prompt) văn bản. Nền tảng này cung cấp nhiều mô hình tinh chỉnh được tối ưu hóa cho các phong cách nghệ thuật cụ thể và nó cũng cho phép người dùng tải hình ảnh của riêng họ lên nền tảng.

Leonardo.Ai hoạt động như thế nào ?

Leonardo.Ai sử dụng mô hình học sâu (deep learning) để tạo hình ảnh từ lời nhắc (Prompt) văn bản. Mô hình này được đào tạo trên một tập dữ liệu khổng lồ gồm hình ảnh và văn bản và nó có thể tìm hiểu mối quan hệ giữa hai loại dữ liệu này. Khi người dùng cung cấp lời nhắc văn bản, mô hình sẽ tạo ra một hình ảnh phù hợp với lời nhắc.

Leonardo có thể tạo ra những hình ảnh như thế nào ?

Leonardo.Ai có thể tạo nhiều loại hình ảnh khác nhau, bao gồm hình ảnh chân thực, hình ảnh theo phong cách anime và thậm chí cả nghệ thuật pixel. Loại hình ảnh được tạo tùy thuộc vào kiểu máy được sử dụng và lời nhắc văn bản được cung cấp.

Làm cách nào để sử dụng Leonardo.Ai?

Để sử dụng Leonardo.Ai, chỉ cần truy cập trang web leonardo.ai và tạo một tài khoản. Khi bạn đã tạo tài khoản, bạn có thể bắt đầu tạo hình ảnh bằng cách cung cấp lời nhắc văn bản. Bạn cũng có thể tải hình ảnh của riêng mình lên nền tảng.

Tài khoản Leonardo.Ai giá bao nhiêu ?

Leonardo.Ai là một nền tảng freemium. Mỗi tương tác trên nền tảng này để tạo ảnh, sửa ảnh, xóa nền, ... đều mất một chi phí mà được Leonardo gọi là Token, Gói cơ bản được miễn phí và Leonardo tặng cho bạn 150 token để sử dụng cho các tương tác của bạn trên nền tảng của họ. Số token này sẽ được trừ dần sau mỗi tương tác của bạn cho tới khi bằng 0 thì bạn không thể tạo hình ảnh hoặc tương tác thêm. Tuy nhiên bạn đừng lo, sau mỗi ngày, Leonardo sẽ reset lại số token mới cho bạn. Như vậy mỗi một ngày thì tài khoản free sẽ có 150 token để sử dụng, cho dù bạn có dùng hết hay không thì ngày hôm sau, số token này sẽ được reset lại. 

Các gói tài khoản trả phí sẽ có giá 10$, 24$ và 48$ mỗi tháng, số lượng token sẽ tương ứng với số tiền bạn bỏ ra mỗi tháng cho tài khoản này.

Xem hình ảnh bên dưới đây:


Leonardo.Ai có an toàn khi sử dụng không?

Leonardo.Ai an toàn để sử dụng. Nền tảng này không thu thập bất kỳ thông tin cá nhân nào từ người dùng và không tạo ra bất kỳ hình ảnh nào có hại hoặc gây khó chịu.

Những lợi ích của việc sử dụng Leonardo.Ai là gì?

Có rất nhiều lợi ích khi sử dụng Leonardo.Ai. Nền tảng này có thể được sử dụng để tạo hình ảnh tùy chỉnh cho nhiều mục đích khác nhau, lên ý tưởng cho thiết kế, tạo hình ảnh nghệ thuật, hình ảnh cho tiếp thị, giáo dục và giải trí, ... Leonardo.Ai cũng có thể được sử dụng để tìm hiểu về mối quan hệ giữa văn bản và hình ảnh.

Những hạn chế của việc sử dụng Leonardo.Ai là gì?

Leonardo.Ai vẫn đang được phát triển và nó có một số hạn chế. Nền tảng đôi khi có thể tạo ra hình ảnh không nhất quán với lời nhắc văn bản và cũng có thể khó tạo ra hình ảnh rất chi tiết. Để khắc phục những nhược điểm này thì Leonardo cũng giống như các nền tảng AI khác, nó vẫn cần training từ chính người dùng, tạo các quy tắc giao tiếp, từ khóa, thông số, ... để việc giao tiếp giữa người dùng và bộ AI này hiệu quả hơn.

Học cách sử dụng Leonardo.Ai ở đâu ?

Bạn có thể xem hướng dẫn sử dụng ngay trên trang chủ của Leonardo tại đường link: https://app.leonardo.ai/faq. Hoặc đọc các bài viết về Leonardo trong blog này.

Nguồn tham khảo:

  1. Leonardo.Ai Official Website
  2. Leonardo.Ai Blog
  3. Leonardo.Ai on Twitter
  4. Leonardo.Ai LinkedIn Page
  5. Leonardo.Ai on Facebook
  6. Leonardo.Ai YouTube Channel
  7. Leonardo.Ai on Instagram
  8. Leonardo.Ai Medium Publication
  9. Leonardo.Ai Crunchbase Profile
  10. Leonardo.Ai Product Hunt Page

Qua bài viết này bạn đã có thể biết được những kiến thức cơ bản nhất về Leonardo. Ở các bài viết sau,  tôi sẽ hướng dẫn các bạn chi tiết về cách đăng ký tài khoản Leonardo.Ai và cách tạo ra hình ảnh bằng Leonardo.Ai, so sánh Leonardo và Midjourney Ai. Các bạn hãy follow blog để liên tục cập nhật những kiến thức mới khi sử dụng Leonardo.Ai nhé.