【问题标题】:How to escape the output of an entire blade template from a parent template如何从父模板中转义整个刀片模板的输出
【发布时间】:2019-11-01 12:57:34
【问题描述】:

我有一个使用 Faker 生成随机 XML 的刀片模板。当我在 HTML5 模板中包含 XML 输出时:

@extends('splash')

@section('content')

<pre>
    <!-- This is where the XML goes -->
    @yield('output') 
</pre>

@endsection

我的所有 XML 都被评估而不是按原样显示。当我希望能够看到标签名称和属性时,我只能看到标签内容。我希望能够转义 XML 生成模板的输出,例如:

@extends('splash')

@section('content')

<pre>
    {{@yield('output')}}
</pre>

@endsection

当然这不起作用,因为 PHP 将其解释为带有抑制错误运算符而不是刀片指令的 yield 语句。所以基本上我想知道的是@yield指令的原始php等价物是什么。

【问题讨论】:

  • 您的初始模板是什么样的?请考虑将其添加到问题中
  • 它只是带有内容部分的 HTML5 样板。我认为这与这个问题根本不相关。除了这可能不是 XHTML
  • 要将模板包含在另一个模板中,您扩展的模板必须具有匹配的部分。也就是说,如果您在子模板中使用@section('content'),则您的父模板中必须有@section('content')@show
  • 问题不是我没有得到输出,而是输出是 XML 代码,我想显示为 XML 代码括号和引号等等。相反,我的标签由浏览器评估,我只看到内容。我将尝试编辑我的问题以使其更清楚。
  • 我不知道命名部分,但您可以使用{{view('my.view.name')-&gt;render()}} 显示整个视图的转义输出。

标签: xml laravel laravel-blade htmlspecialchars laravel-6


【解决方案1】:

所以我想通了。

@extends('splash')

@section('content')

<pre>
    {{View::getSection('output')}}
</pre>

@endsection

帮我搞定了

【讨论】:

    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 2018-04-16
    • 2019-01-22
    • 2013-04-29
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    相关资源
    最近更新 更多