laravel - 将数据库中的 html 代码附加到页面中

Posted

技术标签:

【中文标题】laravel - 将数据库中的 html 代码附加到页面中【英文标题】:laravel - append html code from database into a page 【发布时间】:2017-06-16 23:29:42 【问题描述】:

我会尽量在数据库中保持简单我有 2 个字段,名称 = 站点名称和 html = 该站点的 html 代码。

数据库如下所示:

UPDATE `websites` SET `name` = 'name', `html` = ' <title>Template 1</title> <link href="http://localhost/templates/css.css" rel="stylesheet" type="text/css"> <div class="logo"> <img class="images" id="image" src="#" > </div> <div contenteditable="true" id="content" class="draggable ui-widget-content refresh ui-draggable ui-draggable-handle" style="position: relative; left: 209px; top: 139px;"><p>Change Text inside this box</p></div> <div id="editTxt" class="refresh" contenteditable="true"> <p>This text can be by the user.</p> </div> ' WHERE `websites`.`id` = 1;

现在,当我在浏览器中输入 localhost/website/name 时,我想使用 ajax 将该数据库中的 html 代码附加到浏览器中。

我已经开始这样的事情了:

控制器:

function websites($name)
    
        $websites = Website::all();
        return view('layouts/website', ['websites' => $websites]);
        $name = $websites->name;
    

路线:

Route::get('website/name', 'BuilderController@websites');

website.blade.php:

@extends('layouts.master') @section('title', 'Website Builder') @section('content')
<meta name="csrf-token" content=" csrf_token() " />
<div class="container template_class ">
    @foreach ($websites as $website)
    <a class="content-link" href=" asset($website->name )">
        <img src=" asset($website->html )"/>
        </a> @endforeach

</div>
</body>
<link href="asset('css/bootstrap-colorpicker.min.css')" rel="stylesheet" type="text/css">
<link href="asset('css/bootstrap-formhelpers.min.css')" rel="stylesheet" type="text/css">
<link  href="asset ('//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css')" rel="stylesheet" type="text/css">
<script type="text/javascript" src="!! asset('js/bootstrap-colorpicker.min.js') !!">
</script>
<script type="text/javascript" src="!! asset('js/bootstrap-formhelpers.js') !!">
</script>
<script type="text/javascript" src="!! asset('js/template.js') !!"></script>
<script type="text/javascript" src="!! asset('js/bootstrap-filestyle.min.js') !!">
</script>

</html>
@endsection @show

谁能帮我开始?

【问题讨论】:

我不太明白这个&lt;img src=" asset($website-&gt;html )"/&gt;$website-&gt;html 不是全是html代码吗? 是的,我一直在努力修复它,我将如何从数据库中显示该 html 代码? Blade.php 中没有太多代码会更好,所以它只显示数据库中的 html? 【参考方案1】:

你想Displaying Unescaped Data:

默认情况下,Blade 语句会自动通过 PHP 的 htmlentities 函数可以防止 XSS 攻击。如果你不想 您的数据要转义,您可以使用以下语法:

!! $website->html !!

【讨论】:

我仍然得到这个错误方法 App\Http\Controllers\BuilderController::websites() 不存在 这意味着 Laravel 在 BuilderController 中找不到你的 websites 函数。这是一个完全不同的问题。 但问题是为什么 laravel 找不到它,它就在那里

以上是关于laravel - 将数据库中的 html 代码附加到页面中的主要内容,如果未能解决你的问题,请参考以下文章

如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

日期范围的通配符表示-附python代码

由于 Laravel 4 中的页脚 html 代码,页面在登录页面上再次重定向

资深程序员带你玩转深度学习中的正则化技术(附Python代码)!

如何将数据从 vue 组件传递到 laravel 中的视图(HTML)

机器学习中的损失函数(附python代码)