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

Khi bạn muốn hiển thị một nội dung html trong laravel blade theo cách thông thường bạn sẽ gõ mã html sau đó lưu nó vào 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

Làm cách nào để hiển thị HTML trong 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

Laravel Blade tự động thoát các thẻ HTML nếu bạn hiển thị nội dung bằng dấu ngoặc kép ({{ .. }}). Blade sử dụng hàm PHP gốc htmlspecialchars() để làm như vậy

Đây là một điều tốt, bởi vì nếu người dùng nhập HTML hợp lệ, Blade đảm bảo rằng điều này sẽ không được hiển thị dưới dạng HTML thực (hoặc JavaScript có hại hơn). Thay vào đó, nội dung được hiển thị dưới dạng văn bản thông thường, do đó ngăn chặn tập lệnh chéo trang

Tuy nhiên, trong một số trường hợp nhất định, bạn muốn có thể kết xuất HTML bằng cách sử dụng phiến. Khi bạn biết bạn đang làm gì. Trong những trường hợp như vậy, chúng ta không nên sử dụng cú pháp dấu ngoặc kép, mà thay vào đó là {!! .. !!}

Đô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

Làm cách nào để hiển thị HTML trong 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 để in các thẻ HTML trong Laravel blade?

Theo mặc định, bạn sẽ sử dụng cú pháp sau {{ $some_variable }} để lặp lại nội dung của một biến cụ thể trong Blade. Theo mặc định, {{ }} thoát khỏi các thẻ HTML. Trong trường hợp đầu tiên, bạn có thể thấy cách các phần tử HTML được thoát và trong trường hợp thứ hai, chúng tôi sử dụng {. . } chúng tôi đã nhận được các thẻ HTML thực tế.

Làm cách nào để sử dụng HTML trong Laravel?

Tạo một ứng dụng Laravel. trang web tĩnh mới của laravel
Tạo một thư mục trang trong thư mục tài nguyên
Tạo tệp HTML trong thư mục trang mới tạo. Bạn có thể lấy tệp HTML có nội dung của nó bằng tệp_get_contents() sẵn có của PHP. .
Nội dung HTML này cũng có thể được chuyển vào dưới dạng một biến cho một chế độ xem khác

Làm cách nào để thêm thẻ HTML vào 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."