这个问题已被提出,但是,我仍然没有得到任何正常的工作。
我正在尝试在我的Laravel应用程序的管理面板中创建一项功能,允许用户粘贴广告代码,然后将在laravel应用程序的特定部分中呈现。
我已经有了我的观点:
<form action="{{ route('update.ads', $ads->id) }}" method="POST" class="form-horizontal">
{{ csrf_field() }}
<div class="form-group">
<label class="control-label col-sm-12" >Ad1 (Interstitial or popup on Homepage)</label>
<div class="col-sm-10">
<input type="text" name="ad1" id="ad1" class="form-control" value="{{ $ads->ad1 }}">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-12" >Ad2 (Video Page - Banner Desktop)</label>
<div class="col-sm-10">
<input type="text" name="ad2" id="ad2" class="form-control" value="{{ $ads->ad2 }}">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-12" >Ad3 (Video Page - Banner Mobile)</label>
<div class="col-sm-10">
<input type="text" name="ad3" id="ad3" class="form-control" value="{{ $ads->ad3 }}">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" class="btn btn-info" value="Update" />
</div>
</div>
</form>
我有我的控制器:
public function updateAds($id, Request $request){
$this->validate($request, [
'ad1',
'ad2',
'ad3'
]);
$adsData = $request->only(["ad1","ad2","ad3"]);
$adsData['ad1'] = htmlentities($adsData['ad1']);
$adsData['ad2'] = htmlentities($adsData['ad2']);
$adsData['ad3'] = htmlentities($adsData['ad3']);
Ad::find($id)->update($adsData);
Session::flash('success_msg', 'Ads updated successfully!');
return redirect()->route('admin.ads');
}
数据被保存,但是当我尝试在我的页面上检索它时,无论我编写什么代码,内容都将始终是文本。它永远不会呈现为代码。
以下是我在输出方面所尝试的内容:
{{ addslashes(htmlspecialchars_decode($ads->ad1)) }}
{{ htmlspecialchars_decode($ads->ad1) }}
谢谢大家的帮助! 问候, 蒂亚戈
答案 0 :(得分:3)
{{ }}
是&#34;安全&#34;叶片回声;它实际上在输出数据之前自动使用htmlspecialchars重新编码。
尝试{!! html_entity_decode($ads->ad1) !!}
或类似的东西。我不确定它是如何存储的,因此您可能需要进行不同的解码,但关键是使用{!! !!}
,它会显示原始的非转义数据。
答案 1 :(得分:0)
{{}}是“”刀片回波;实际上,它会在输出数据之前自动使用htmlspecialchars重新编码。