TEL:400-8793-956
当前位置:程序、服务器

使用 Laravel 在数据库中存储 HTML 的正确方法是什么?

提问者: 近期获赞: 浏览人数: 发布时间:2022-03-20 13:10:57

 问:我想让我的客户能够google fonts links通过管理面板保存到数据库中并将它们加载到blade file. 将链接放入数据库工作:

 
1,
"<link rel=""preconnect"" href=""https://fonts.googleapis.com"">
<link rel=""preconnect"" href=""https://fonts.gstatic.com"" crossorigin>
<link href=""https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@300;400;600&display=swap"" rel=""stylesheet"">",
"font-family: 'Roboto Slab', serif;",
2022-03-19 17:40:56,
2022-03-19 18:40:56
但是,当我尝试在blade file无法正确读取它们时访问它们时,似乎:
 
[{
"id":1,
"link":"\n\n",
"css":"font-family: 'Roboto Slab', serif;",
"created_at":"2022-03-19 17:40:56",
"updated_at":"2022-03-19 18:40:56"
}]
如您所见,该link列已被解释为\n\n空字符串。
 
这就是我尝试访问数据库的方式blade file:
 
<body id="body">
  <?php
    $data = \Illuminate\Support\Facades\DB::table('fonts')->get()
    ?>
  <p>{!! $data !!}</p>
</body>
如何防止对 的错误解释link?
 
编辑:
 
这就是HTML存储在数据库中的方式。
 
vue component:
 
<template>
  <div id="font" class="font cms-page">
    <form @submit.prevent="storeFont" method="post" enctype="multipart/form-data">
      <textarea class="textarea title-field" v-model="state.fontLink"></textarea>
    </form>
  </div>
</template>
 
 
<script setup>
import {reactive} from "vue";
 
const state = reactive({})
 
const storeFont = () => {
    axios.post('/store-font', state)
}
</script>
MediaController.php:
 
public function storeFont(Request $request)
{
    $font = new Font;
    $font->id = 1;
    $font->link = $request->fontLink;
    $font->css = $request->fontCSS;
    $font->updated_at = now('CET');
 
    DB::table('fonts')->delete($font->id);
 
    $font->save();
 
    return response()->json(null, 200);
}
这将替换旧条目并存储新条目。
 
编辑2:
 
记录数据库条目会MediaController.php显示此数组:
 
[2022-03-19 18:48:20] local.INFO: Illuminate\Support\Collection Object
(
    [items:protected] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 1
                    [link] => <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@300;400;600&display=swap" rel="stylesheet">
                    [css] => font-family: 'Roboto Slab', serif;
                    [created_at] => 2022-03-19 17:40:56
                    [updated_at] => 2022-03-19 18:40:56
                )
 
        )
 
    [escapeWhenCastingToString:protected] => 
)
 
 
答:最好省略常数部分!您可以像普通字符串一样将变量部分保存到数据库中:
 
family=Roboto+Slab:wght@300;400;600&display=swap
然后将“https://fonts.googleapis.com/css2?family”连接到您的刀片或控制器中,甚至作为模型中的属性!
 
但如果你想要全部,请检查你length在数据库中列的“”并使用text它的数据类型
上一篇: 如何询问当前用户的密码以删除记录?
下一篇: 如何访问网页并更改内容 mysql - phpmyadmin - ftp