在Laravel 5中,我有一个包含以下内容的主模板:
<title>@yield('title') | Site Name</title>在我看来:
@extends('master')
@section('title', $client->name)
...问题是,“收益率”并没有逃避传递给它的数据。到目前为止,我找到的唯一解决方案是手动转义数据,如下所示:
@section('title', e($client->name))这是最好的方法吗?这意味着我必须手动转义使用变量的每个视图上的数据。我看不出有一种方法可以从主模板中转义@产指令--使用{{ }}或e()绕着“产”是行不通的。
发布于 2015-11-24 18:36:04
为什么不做以下工作:
@section('title') {{$client->name}} @endsection这至少与您的其他视图中的转义数据一致。按照你的方式,你很可能会错过一个e()。有了以上所述,如果没有转义,则可以在呈现视图时立即查看。
更新
如何使用原始PHP:
<title> <?php echo e($__env->yieldContent('title')); ?> | Site Name</title>这就是刀片模板引擎用什么代替@yield,但我已经添加了转义助手。
这意味着您不需要逃避@section。我想这个会成功的,还没试过。
发布于 2021-11-26 09:59:05
在我的例子中,问题是它实际上已经转义了我传递的字符串,如下所示:
@section('title', 'String with \' string')在实际的HTML中,您将看到'而不是实际的'。
解决这一问题的方法是编写如下部分:
@section('title'){!! "String with ' string" !!}@endsection发布于 2015-11-24 18:35:48
做
@section('title')
{{ $client->name }}
@stophttps://stackoverflow.com/questions/33900779
复制相似问题