Laravel 在 Blade 模板中转义所有 HTML

Laravel Escaping All HTML in Blade Template(Laravel 在 Blade 模板中转义所有 HTML)
本文介绍了Laravel 在 Blade 模板中转义所有 HTML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在 Laravel 中构建一个小型 CMS,并尝试显示内容(存储在数据库中).它显示 HTML 标签而不是执行它们.就像所有打印数据都有一个自动 html_entity_decode 一样.

I'm building a small CMS in Laravel and I tried to show the content (which is stored in the DB). It is showing the HTML tags instead of executing them. Its like there is an auto html_entity_decode for all printed data.

<?php

class CmsController extends BaseController
{
    public function Content($name)
    {    
        $data = Pages::where('CID', '=', Config::get('company.CID'))
            ->where('page_name', '=', $name)
            ->first();

        return View::make('cms.page')->with('content', $data);
    }
}

我尝试使用花括号打印内容.

I tried to print the content using the curly brace.

{{ $content->page_desc }}

和三重花括号.

{{{ $content->page_desc }}}

他们给出了相同的结果.我需要执行那些 HTML 标签而不是转义它们.

And they give the same result. I need to execute those HTML tags instead of escaping them.

推荐答案

将语法从 {{ }} 更改为 {!!!!}.

Change your syntax from {{ }} to {!! !!}.

正如 Alpha 在上面的评论中所说(不是答案,所以我想我会发布),在 Laravel 5 中,{{ }}(以前是非转义的输出语法)已经改变到 <代码>{!!!!}.将 {{ }} 替换为 {!!!!} 它应该可以工作.

As The Alpha said in a comment above (not an answer so I thought I'd post), in Laravel 5, the {{ }} (previously non-escaped output syntax) has changed to {!! !!}. Replace {{ }} with {!! !!} and it should work.

这篇关于Laravel 在 Blade 模板中转义所有 HTML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Convert JSON integers and floats to strings(将JSON整数和浮点数转换为字符串)
in php how do I use preg replace to turn a url into a tinyurl(在php中,如何使用preg替换将URL转换为TinyURL)
all day appointment for ics calendar file wont work(ICS日历文件的全天约会不起作用)
trim function is giving unexpected values php(Trim函数提供了意外的值php)
Basic PDO connection to MySQL(到MySQL的基本PDO连接)
PHP number_format returns 1.00(Php number_Format返回1.00)