对于想了解当从Laravel传递到Vue时,RAWHTML标签会被剥离的读者,本文将是一篇不可错过的文章,我们将详细介绍laravel引入css,并且为您提供关于laravel4:如何将原始HTML插
对于想了解当从 Laravel 传递到 Vue 时,RAW HTML 标签会被剥离的读者,本文将是一篇不可错过的文章,我们将详细介绍laravel引入css,并且为您提供关于laravel 4:如何将原始HTML插入标签?、Laravel 5 Mail模板显示html标签、laravel HTML、Laravel HTML 标签不会插入在线服务器的有价值信息。
本文目录一览:- 当从 Laravel 传递到 Vue 时,RAW HTML 标签会被剥离(laravel引入css)
- laravel 4:如何将原始HTML插入标签?
- Laravel 5 Mail模板显示html标签
- laravel HTML
- Laravel HTML 标签不会插入在线服务器
当从 Laravel 传递到 Vue 时,RAW HTML 标签会被剥离(laravel引入css)
如何解决当从 Laravel 传递到 Vue 时,RAW HTML 标签会被剥离?
我正在为现有的 Laravel 系统添加 Vue 支持。一些数据字段包含 HTML 标签。
在 Laravel 中使用 {!!选项。
在将它传递给 Vue 时,我发现有些标签被省略了。
例如
从 Laravel 传递的数据 - 我已经使用刀片中的 dd 命令验证了这一点。
<div>
<ul>
<li>List 1</li>
<li>List 2</li>
<li>List 3</li>
</ul>
</div>
如下传递给Vue
这是Vue中接收到的数据。我已经用 console.log 和 Vue 开发者工具验证过。
List1</li>List 2</li>List 3</li>
任何关于我可能做错的提示都会很棒。
解决方法
我遇到了同样的问题。这都是关于 XSS 漏洞的。解决方法可能是在 vue 组件上使用插槽和回显渲染视图,但也可以使用道具。
ExampleComponent.vue:
<template>
<div>
<slot></slot>
</div>
</template>
<script>
export default {};
</script>
返回渲染视图:
Route::get(''/test'',function () {
return view(''test.index'',[''view'' => view(''test.list'',[''num'' => 5])->render()]);
});
test\index.blade.php
<example-component>
{!!$view!!}
</example-component>
和test\list.blade.php
<div >
<ul>
@for ($i = 0; $i < $num; $i++)
<li>List {{$i+1}}</li>
@endfor
</ul>
</div>
你也可以使用 props 但你需要 v-html 指令:
ExampleComponent.vue:
<template>
<div>
<span v-html="view"></span>
</div>
</template>
<script>
export default {
props:[''view'']};
</script>
test\index.blade.php
<example-component view="{{$view}}">
</example-component>
laravel 4:如何将原始HTML插入标签?
{{ Form::label('firstName','First name <em>*</em>',array('class' => 'input_tag')) }}
它产生:
<labelfor="firstName">First Name <em>*</em></label>
但是标签EM没有被解释为它应该是.我想要的是:
<labelfor="firstName">First Name <em>*</em></label>
解决方法
Form::macro('rawLabel',function($name,$value = null,$options = array()) { $label = Form::label($name,'%s',$options); return sprintf($label,$value); });
Laravel 5 Mail模板显示html标签
<table> <tr><td>SiteName</td> </tr> <tr><td>{{$content}}</td></tr> </table>
我通过CKEditor存储电子邮件模板的内容(在MysqL数据库中),它看起来像:
<p>Dear {{$username}},</p> <p>This is your new password: {{$newPassword}}</p>
现在我在laravel 5.5中使用mail功能如下:
$content = str_replace(array('username','newPassword'),array($userName,$request->confirm_password),addslashes($emailTemplate->templateBody)); Mail::send(['html' => 'mail'],['content' => $content],function ($message) use($emailTemplate,$user){ $message->from($emailTemplate->fromEmail,$emailTemplate->fromName); $message->to($user->email); });
在mailtrap.io发送电子邮件后,我看到邮件如下:
SiteName <p>Dear Niladri,</p> <p>This is your new password: 123456</p>
请注意,在mail.blade中写入SiteName的表,tr,td正在运行,并且电子邮件中没有显示HTML代码.没关系.但只有来自CKEditor的内容显示HTML标签(< p>< / p>).
我做错了什么吗?
解决方法
<table> <tr> <td>SiteName</td> </tr> <tr> <td>{!! $content !!}</td> </tr> </table>
laravel HTML
laravel html标签用法
HTML::macro('name', function(){}); // 将 HTML 字符串转为实体 HTML::entities($value); // 将实体转为 HTML 字符 HTML::decode($value); // 生成 JavaScript 文件链接 HTML::script($url, $attributes); // 生成 CSS 文件链接 HTML::style($url, $attributes); // 生成一个 HTML 图片元素 HTML::image($url, $alt, $attributes); // 生成一个 HTML 链接 HTML::link($url, 'title', $attributes, $secure); // 生成一个 HTTPS 类型的 HTML 链接 HTML::secureLink($url, $attributes); // 给资源文件生成一个 HTML link HTML::linkAsset($url, $secure); // 给资源文件生成一个 HTTPS HTML 链接 HTML::linkSecureAsset($url, $attributes); // 给命名路由生成一个 HTML 链接 HTML::linkRoute($name, $parameters, $attributes); // 给控制器动作生成 HTML 链接 HTML::linkAction($action, $attributes); // 给邮件地址生成 HTML 链接 HTML::mailto($email, $attributes); // 混淆一个邮件地址以阻止垃圾邮件扫描器的嗅探 HTML::email($email); // 生成有序列表 HTML::ol($list, $attributes); // 生成无序列表 HTML::ul($list, $attributes); HTML::listing($type, $list, $attributes); HTML::listingElement($key, $type, $value); HTML::nestedListing($key, $value); // 从数组中构建 HTML 属性 HTML::attributes($attributes); // 构建单属性元素 HTML::attributeElement($key, $value); // 混淆一个字符串以阻止垃圾邮件扫描器的嗅探 HTML::obfuscate($value);
Laravel HTML 标签不会插入在线服务器
您需要扩大数据库中内容列的大小。这意味着将类型从 varchar 更改为 text。
今天关于当从 Laravel 传递到 Vue 时,RAW HTML 标签会被剥离和laravel引入css的介绍到此结束,谢谢您的阅读,有关laravel 4:如何将原始HTML插入标签?、Laravel 5 Mail模板显示html标签、laravel HTML、Laravel HTML 标签不会插入在线服务器等更多相关知识的信息可以在本站进行查询。
本文标签: