问:我想让我的客户能够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它的数据类型