【问题标题】:Laravel Blade, Escape {{ }} EchoLaravel Blade, Escape {{ }} Echo
【发布时间】:2020-06-27 08:56:59
【问题描述】:

我有一个 textarea 标签,我希望有一个默认值 = {{"example text area"}}

我正在尝试这样做:

<textarea name="" id="" cols="30" rows="10">{{"example text area"}}</textarea> 所以输出值正好是 {{"example text area"}}

但是上面的代码只会打印example text area

我尝试了{!!'&amp;#123;&amp;#123;"tre"&amp;#125;&amp;#125;'!!} 和上面相同的响应,我也尝试了{!!'{{"example text area"}}'!!} 并且它输出&lt;?php echo e("example text area"); ?&gt;

那该怎么做呢?

【问题讨论】:

  • &lt;textarea name="" id="" cols="30" rows="10"&gt;{{'&amp;#123;&amp;#123;"example text area"&amp;#125;&amp;#125;'}}&lt;/textarea&gt; 将准确打印您的输出{{"example text area"}}
  • 不,它只打印示例文本区域,我需要将文本包围在 {{ }}
  • 在 laravel 刀片上测试,输出带有大括号和字符串
  • 如果你不打印像&lt;textarea name="" id="" cols="30" rows="10"&gt;&amp;#123;&amp;#123;"example text area"&amp;#125;&amp;#125;&lt;/textarea&gt;这样的变量,你也可以删除回显括号,它会像以前一样输出
  • 同样的问题,正如@lizeshakya 所说,这是 Laravel 5.4 中的一个错误

标签: php laravel laravel-5 escaping laravel-blade


【解决方案1】:

你能试试这样的吗?如果是静态值,可以打印出来。

<textarea name="" id="" cols="30" rows="10"><?php echo '{{"gitHub_validation"|translate}}' ?></textarea>

【讨论】:

  • 它只导致 gitHub_validation,这是 Laravel 5.4 github.com/laravel/framework/issues/15340 的一个错误,正如@lizeshakya 所述
【解决方案2】:

一种方法是在刀片内部创建一个变量并在必要时回显该变量,例如:

//test.blade.php

@php
    $placeholder = "{{example text area}}";
@endphp
<textarea name="" id="" cols="30" rows="10">{{$placeholder}}</textarea>

简单的方法是回显必要的值,例如

<textarea name="" id="" cols="30" rows="10"><?php echo "{{example text area}}" ?></textarea>

如果你的 Laravel 版本大于 5.1,可以使用

<textarea name="" id="" cols="30" rows="10">@{{"gitHub_validation"|translate}}</textarea>

【讨论】:

  • 它们都不起作用,第一个输出&lt;?php echo e(example text area); ?&gt;,第二个产生解析错误Parse error: syntax error, unexpected '}',第三个没有输出
  • 您还需要" " 的默认值吗?
  • 是的,实际上我要打印的真实文本是 {{"gitHub_validation"|translate}}
  • 好吧,这只会打印 gitHub_validation"|translate 但我需要它被 {{ }} 包围,这就是问题
  • 不幸的是该应用程序依赖于它,我会尝试其他的,感谢您的时间
【解决方案3】:

你为什么要这样做?如果文本不是来自 crontroller(变量),您可以输入您想要的内容。

<textarea class="form-control">my default text</textarea>

或者,如果重要,可以使用占位符:

<textarea class="form-control" placeholder="bla"></textarea>

【讨论】:

  • 其实这是一个假的例子,数据实际上来自控制器通过读取文件,我查看一些html代码并允许用户编辑它
  • 好的,你应该提到这一点。 :)
猜你喜欢
  • 1970-01-01
  • 2015-07-10
  • 2017-04-14
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
相关资源
最近更新 更多