【问题标题】:The line break is not working in Laravel blade.php换行符在 Laravel Blade.php 中不起作用
【发布时间】:2018-09-24 08:05:35
【问题描述】:
@foreach ($errors->all() as $error)
  @php
    $message .= $error . '<br/>';
  @endphp
@endforeach

我在刀片上使用$message:
<section class="content"> @include('includes.partials.messages') @yield('content') </section>

我尝试过&lt;br&gt;、&lt;br/&gt;、\n 等,都不起作用。 等待帮助

【问题讨论】:

  • 欢迎。你怎么知道它不起作用,你在任何地方都不输出$message
  • 谢谢@kerbholz 它在屏幕上输出为“文本文本文本文本
    文本文本文本文本”,这是一个错误警报。顺便说一句,我的英语不够好。
  • 您能否编辑您的问题并添加您在哪里/如何输出$message 的部分? (我假设它是{{ $message }},如果这是您输出它的方式,请尝试使用{!! $message !!},这样 HTML 就会被解释为 HTML)
  • 感谢您的耐心等待,@kerbholz。我已经编辑过了。
  • 感谢您的编辑,但它仍然没有显示您如何在任何地方输出$message。到目前为止,您只分配了$message。

标签: php line-breaks laravel-blade


【解决方案1】:

默认情况下,当您使用双花括号时,Blade 将调用 e helper function,而后者调用 htmlspecialchars。

这意味着:

{{ 'test test <br /> test test' }}

将呈现为:

<?php echo e('test test <br /> test test'); ?>

然后随后显示为:

test test &lt;br /&gt; test test

如果您不希望您的字符串转义 - 以防它们显示 HTML - 请使用以下内容:

{!! $message !!}

不会转义你的字符串,它会按你的预期显示。

注意:但是请注意,这里存在安全风险,因为如果您不小心,有人可能会使用XSS。

【讨论】:

  • 谢谢@JustCarty,我今天早些时候试过了,但它不起作用。不知道为什么,谢谢。
【解决方案2】:

我看到你在使用 Laravel Blade 中的错误

也许你可以使用这个例子

<ul>
    @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
    @endforeach
</ul>

这将显示包中的每个错误。你也可以把li标签改成你喜欢的东西

来源:https://laravel.com/docs/5.7/validation

【讨论】:

  • 你好 Koen 请为每个循环添加你错过的
      标签。
  • 谢谢你们,刚刚做了
  • 我的电脑又遇到了问题,等我的电脑修好了我会继续尝试,再次感谢@KoenHollander
  • 它有效,@KoenHollander,谢谢 Koen。但它伴随着另一个问题,在我以正确的格式重新输入后,错误消息并没有在页面顶部消失。如何解决这个问题?
  • 抱歉,它不起作用,@KoenHollander。但非常感谢你,我在 GitHub 和 Facebook 上关注了你。
猜你喜欢
  • 2014-04-11
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多