Cách kết xuất HTML trong Laravel blade

Tham gia bản tin của tôi

Khi bạn muốn hiển thị một nội dung html trong laravel blade theo cách bình thường bạn sẽ gõ mã html sau đó lưu trữ nó trong một biến như hình bên dưới và bạn sẽ cố gắng hiển thị nó

$content = '

Lorem ipsum dolor

Cách kết xuất HTML trong Laravel blade

'

Chúng ta sẽ xem xét hai cách khác nhau để hiển thị nội dung html

 {!! $content !!}

Một cách khác là sử dụng html_entity_decode như bên dưới

{{ html_entity_decode($content) }}

Blade là một công cụ tạo khuôn mẫu mạnh mẽ có trong Laravel, cho phép người dùng sử dụng mã PHP tiêu chuẩn trong chế độ xem của họ

Các tệp chế độ xem phiến sử dụng phần mở rộng tệp .blade.php và được lưu trữ trong thư mục resources/views

điều kiện tiên quyết

Một ứng dụng Laravel đang hoạt động, nếu không, vui lòng tạo một ứng dụng laravel mới và chạy máy chủ

Hiển thị HTML trong Laravel Blade Views

Bạn cần tạo tệp mẫu lưỡi cắt hello.blade.php trong thư mục resources/views

Mẫu phiến đang sử dụng cú pháp {{}} để truy cập một biến được xác định trong phương thức của bộ điều khiển

Đôi khi, bạn có thể có một chuỗi các thẻ/thành phần HTML được trả về từ cơ sở dữ liệu hoặc nguồn của bên thứ 3 và bạn muốn kết xuất nó trong Laravel Blade. Nếu sử dụng dấu ngoặc nhọn "{{ $content }}" để xuất nó, nó sẽ được hiển thị dưới dạng chuỗi chứ không phải HTML. Hành vi này xảy ra vì Laravel theo mặc định thoát khỏi giá trị khi sử dụng cú pháp

{{ $content }}

Để hiển thị HTML thô, bạn sẽ phải giải phóng nó và để làm điều đó, bạn có thể sử dụng cú pháp sau

{!! $renderHTMLContent !!}

Theo mặc định, sử dụng cú pháp ở trên sẽ tự động bỏ qua bất kỳ giá trị nào bằng cách sử dụng hàm "htmlspecialchars" của PHP nhưng hãy đảm bảo xác thực dữ liệu nếu người dùng nhập vào. Đằng sau khung cảnh, mẫu đã biên dịch trông giống như bên dưới

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách chuyển phần tử HTML từ bộ điều khiển laravel sang chế độ xem. Ở phần cuối của hướng dẫn, bạn cũng sẽ học cách trả lại chế độ xem từ bộ điều khiển sang laravel blade

Trước khi bạn thực hiện bất kỳ mã hóa nào, hãy đảm bảo rằng, bạn đang đặt tên cho các tệp xem của mình bằng. lưỡi. php và chúng được lưu trong thư mục resource/views

Cách kết xuất HTML trong Laravel blade

1. Sử dụng dấu ngoặc kép

Nếu bộ điều khiển của bạn chuyển một biến chuỗi tới laravel blade,

$str="This is my html render";

và nếu bạn muốn hiển thị văn bản hoặc đoạn văn được truyền từ bộ điều khiển, bạn nên làm như thế này

{{$str}}

Trong dấu ngoặc kép, bạn nên viết biến của mình được truyền từ bộ điều khiển sang lưỡi dao, và bạn đã sẵn sàng và bạn sẽ thấy

This is my html render

Đây là cách phổ biến nhất để laravel kết xuất html nếu bạn không có bất kỳ thẻ nào

Để giải thích, câu trên giống với dòng bên dưới. PHP tự động đảo ngược từ {{$str}} thành

________số 8_______

Đây e() là trình bao bọc tiện lợi cho hàm echo(). Nhưng nó đã không được dùng nữa trong Laravel.  

Xây dựng một ứng dụng di động hoàn chỉnh với Laravel Backend

2. Sử dụng dấu ngoặc đơn và dấu chấm than

Giả sử, bạn có một biến $str trong bộ điều khiển với một số thẻ html như bên dưới và bạn muốn gửi tới blade bằng hàm compact() trong laravel.  

$str="

This is my text

"

Sau khi nhận được trên phiến, biến $str chứa thẻ HTML. Sau đó, bạn phải sử dụng một dấu ngoặc nhọn ở mỗi bên và hai dấu chấm than ở cả hai bên của biến và đây là cách phổ biến nhất khiến laravel không thoát HTML trong mẫu phiến

{!!$str!!|}

Và sau đó đầu ra của bạn sẽ như dưới đây. Hãy nhớ rằng bạn sử dụng dấu ngoặc đơn và hai dấu chấm than để hiển thị giá trị biến của mình

This is my test

√Vì vậy, {{ }} dấu ngoặc nhọn in ra chuỗi nguyên trạng, nhưng {. . } sẽ hiển thị HTML từ một biến chuỗi. Và dấu chấm than kép của lưỡi laravel nên được sử dụng khi bạn có các thẻ HTML trong chuỗi của mình

Cái trên thực sự hữu ích khi bạn muốn kết xuất HTML từ cơ sở dữ liệu để xem phiến

3. Sử dụng hàm html_entity_decode()

Đây là hàm PHP cũ tốt của chúng tôi, giúp ích rất nhiều cho bạn. Hàm này loại bỏ các thực thể HTML khỏi một chuỗi, thực thể HTML là gì? . Xem đoạn mã dưới đây có chứa một vài thực thể HTML.  

public function show(){
        $str = 'w3schools.com';
    	return view('frontend.view', compact( 'str'));
}

Trong hàm trên $str chứa các thực thể HTML và biến $str sau khi được chuyển qua hàm html_entity_decode() trong phiến,

{!!html_entity_decode($str)!!}

nó tạo ra đầu ra như dưới đây

w3schools.com

Vì vậy, lần tới nếu bạn có chuỗi chứa các thực thể HTML, chỉ cần sử dụng chức năng giải mã thực thể HTML này và vấn đề của bạn sẽ được giải quyết

Bạn cũng có thể dùng {. html_entity_decode($str). } khi bạn muốn laravel render HTML từ cơ sở dữ liệu

Bạn sử dụng html_entity_decode trong laravel nếu

√Bạn muốn kết xuất HTML từ cơ sở dữ liệu

√Nếu chuỗi của bạn có thực thể HTML

4. Sử dụng mở PHP truyền thống

Bạn có thể kết xuất HTML trong lưỡi bằng cách sử dụng thẻ mở và đóng PHP truyền thống. Bạn có thể viết

________số 8_______

Trong lưỡi kiếm của bạn. Biến $string đến từ bộ điều khiển của bạn. Nhưng nó không được khuyến khích để làm như thế này. Điều này giống như mã spaghetti hơn, nơi bạn đặt PHP và HTML cùng nhau.  

5. Sử dụng chỉ thị Laravel PHP

Laravel nổi tiếng với cú pháp PHP rõ ràng và dễ đọc. Nếu phương pháp được đề cập trong phần 4, giống như mã spaghetti dành cho bạn, thì hãy thử phương pháp bên dưới

{{$str}}
1

Đó là một trong những cách viết PHP yêu thích của tôi trong Laravel blade

Những điều cần nhớ về laravel blade escape html

√Nếu bạn muốn hiển thị một chuỗi và nó không chứa bất kỳ ký tự đặc biệt hoặc thẻ html nào, hãy sử dụng {{$str}}

√Nếu chuỗi biến của bạn bao gồm các thẻ html nhưng không chứa bất kỳ thực thể html nào thì chỉ cần sử dụng {. $str. } cho HTML không thoát. Bởi vì {{$string}} thoát khỏi các thẻ HTML có nghĩa là {{$start}} sẽ thoát khỏi html

√Nếu biến của bạn chứa cả thẻ html và thực thể html thì hãy sử dụng {. html_entity_decode($str). }

√Nếu bạn kết xuất bất kỳ chuỗi nào đến từ cơ sở dữ liệu

Laravel trả lại HTML từ bộ điều khiển

Nói chung, chúng tôi không trả lại toàn bộ chế độ xem từ bộ điều khiển laravel. Ngay cả khi bạn muốn làm điều đó, bạn có thể. Hãy xem cách trả về toàn bộ chuỗi tài liệu HTML từ bộ điều khiển

Làm cách nào để hiển thị nội dung HTML trong Laravel blade?

√Vì vậy, {{ }} dấu ngoặc nhọn in chuỗi nguyên trạng, nhưng {. . } sẽ hiển thị HTML từ một biến chuỗi . Và dấu chấm than kép của lưỡi laravel nên được sử dụng khi bạn có các thẻ HTML trong chuỗi của mình. Cái trên thực sự hữu ích khi bạn muốn kết xuất HTML từ cơ sở dữ liệu để xem phiến.

Làm cách nào để hiển thị tệp HTML trong Laravel?

Cách chuyển đổi mẫu HTML sang dự án Laravel trong 5 bước đơn giản .
Sao chép tất cả. html vào Thư mục dự án Laravel của bạn > Tài nguyên > Chế độ xem
Đổi tên tất cả. tập tin html để. lưỡi. php
Sao chép tất cả thư mục CSS, JS, Hình ảnh và phông chữ vào Thư mục chung
Liên kết tất cả CSS, JS, Hình ảnh bằng cách sử dụng {{ nội dung('/') }}.
Tạo tuyến đường trong Tuyến đường > web

Làm cách nào để hiển thị HTML trong bộ điều khiển Laravel?

Tạo bộ điều khiển bằng cách chạy lệnh này "php artisan make. bộ điều khiển HtmlController". .
không gian tên Ứng dụng\Http\Bộ điều khiển;
sử dụng Chiếu sáng\Http\Yêu cầu;
sử dụng Ứng dụng\Mô hình\Sinh viên;
lớp HtmlController mở rộng Bộ điều khiển{
chỉ số chức năng công cộng () {
$name = "Anmol Sharma";
$html = "

Hello, I am ".$ name."

Làm cách nào để hiển thị HTML trong Laravel?

Hành vi này xảy ra vì Laravel theo mặc định thoát khỏi giá trị khi sử dụng cú pháp. Để hiển thị HTML thô, bạn sẽ phải giải phóng nó và để làm điều đó, bạn có thể sử dụng cú pháp sau. {. $renderHTMLNội dung. }