首页 文章

Laravel 5:使用Blade显示HTML

提问于
浏览
175

我有一个字符串返回到我的一个视图,如下所示:

$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'

我正试图用Blade显示它:

{{$text}}

但是,输出是原始字符串而不是呈现HTML . 如何在Laravel 5中使用Blade显示HTML?

PS . PHP echo() 正确显示HTML .

15 回答

  • 0

    如果条件如下,您可以使用三种方式首先使用

    {!! $text !!}
    

    这是第二种方式

    <td class="nowrap">
    @if( $order->status == '0' )
        <button class="btn btn-danger">Inactive</button>
    @else
        <button class="btn btn-success">Active</button>
    @endif
    </td>
    

    在叶片上使用三元运算符的第三种正确方法

    <td class="nowrap">
          {!! $order->status=='0' ? 
              '<button class="btn btn-danger">Inactive</button> : 
              '<button class="btn btn-success">Active</button> !!}
    </td>
    

    我希望第三种方法对刀片上使用的三元运算符是完美的 .

  • 0

    我去过那里,这是我的错 . 非常愚蠢的一个 .

    如果你忘记了文件名中的.blade扩展名,那个文件不能理解刀片,而是运行php代码 . 你应该用

    /resources/views/filename.blade.php
    

    代替

    /resources/views/filename.php
    

    希望这对某人有所帮助

  • 32

    你需要这样做

    {!! $text !!}
    

    执行{{}}时,字符串将自动转义

  • 1

    对于laravel 5

    {!!html_entity_decode($text)!!}
    

    想通过这个link,看看RachidLaasri的回答

  • 0

    你可以试试这个:

    {!! $text !!}
    

    你应该看看:http://laravel.com/docs/5.0/upgrade#upgrade-5.0

  • -1

    请用

    {!! $test !!}
    

    只有在HTML的情况下,如果你想渲染数据,刺痛等使用

    {{ $test }}
    

    这是因为编译刀片文件时

    {{ $test }} 转换为 <?php echo e($test) ?>

    {!! $test !!} 被转换为 <?php echo $test ?>

  • 7

    试试这个 . 它对我有用 .

    {{ html_entity_decode($text) }}
    

    在Laravel Blade模板中,{{}}将转义为html . 如果要在视图中显示控制器中的html,请从字符串解码html .

  • 6

    还有另一种方式 . 如果对象的目的是渲染html,则可以实现具有 toHtml() 方法的 \Illuminate\Contracts\Support\Htmlable Contract .

    然后,您可以像这样从刀片渲染该对象: {{ $someObject }} (注意,不需要 {!! !!} 语法) .

    此外,如果你想返回html属性并且你知道它将是html,请使用 \Illuminate\Support\HtmlString class,如下所示:

    public function getProductDescription()
    {
        return new HtmlString($this->description);
    }
    

    然后像 {{ $product->getProductDescription() }} 一样使用它 .

    当然在页面上直接渲染原始html时要负责 .

  • 425

    您可以使用 {!! $ text !!}用于在Laravel中呈现HTML代码

    {!! $text !!}
    

    如果你使用

    {{ $text }}
    

    它不会呈现HTML代码并以字符串形式打印 .

  • 2

    使用 {!! $text !!} 显示数据而不转义它 . 请确保您不使用来自用户且尚未清理的数据执行此操作 .

  • 0

    如果要逃避数据使用

    {{ $html }}
    

    如果不想逃避数据使用

    {!! $html !!}
    

    但是在Laravel-4之前你可以使用

    {{ HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) }}
    

    来到Laravel-5时

    {!! HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) !!}
    

    您也可以使用PHP函数执行此操作

    {{ html_entity_decode($data) }}
    

    浏览PHP文档以获取此函数的参数

    html_entity_decode - php.net

  • 12

    它很简单

    {!! $ text !!}

    laravel编译为dom元素,{{$ text}}打印为字符串

  • 45

    这适用于Laravel 5.6

    <?php echo "$text"; ?>
    

    以不同的方式

    {!! $text !!}
    

    它不会呈现HTML代码并以字符串形式打印 .

    欲了解更多详情,请打开链接: - Display HTML with Blade

  • -1

    对于在textarea中使用tinymce和markup的人:

    {{ htmlspecialchars($text) }}
    
  • 4

    在PHP Laravel中,在HTML页面中显示 $test 数据:

    {{ $test }}
    

    以不同的方式

    <?PHP $test ?>
    

相关问题