如何使用播种器在 mysql 或 json 中使用 html 代码在 laravel 中
how to have html codes in mysql or json in laravel using seeder
我正在尝试构建一个网站构建器,我想在其中手动存储 plugins/portlets 的 HTML 结构,用户可以在其中拥有该结构以及他们插入的任何可编辑数据,获取在控制器中使用序列化存储到数据库中,现在我知道 MySQL 不保存 html 数据或者说存储不安全,我决定将基本结构存储到 JSON格式化为单独的文件,现在我不想将这些 JSON 文件放在我的 public 文件夹目标中,我浏览了 Seeder 文档和教程以找到 file and get the JSON data. Also went through this tutorial
并遇到以下 class:
<?php
use Illuminate\Database\Seeder;
use App\User;
class PortletTableSeeder extends Seeder {
public function run()
{
$json = File::get("database/data/portlets.json");
$data = json_decode($json);
foreach ($data as $obj) {
'id' => $obj->id,
'html_code' => $obj->html_code,
'dummy_data' => $obj->dummy_data,
//more objects..
));
}
}
}
?>
这是正确的执行方式吗?并将其调用到 blade 文件中,例如如果 gulpfile 中 theme/portlet 的 id 我有 mixstyles 的名称,我可以这样吗:
<link href="css/{{$id}}.css" rel="stylesheet" type="text/css" />
我认为最好的方法是在前端管理 HTML 代码(使用 blade)。从数据库获取数据集并在前端创建动态页面。
您可以设计单独的 blade 文件并动态加载。
public function create()
{
$data = Portlet::get();
if(condition)
return view('design.form1',compact('data'));
else
return view('design.form2',compact('data'));
}
如果您想在 mysql 数据库中保留 json 数据,请遵循 link。
我正在尝试构建一个网站构建器,我想在其中手动存储 plugins/portlets 的 HTML 结构,用户可以在其中拥有该结构以及他们插入的任何可编辑数据,获取在控制器中使用序列化存储到数据库中,现在我知道 MySQL 不保存 html 数据或者说存储不安全,我决定将基本结构存储到 JSON格式化为单独的文件,现在我不想将这些 JSON 文件放在我的 public 文件夹目标中,我浏览了 Seeder 文档和教程以找到 file and get the JSON data. Also went through this tutorial
并遇到以下 class:
<?php
use Illuminate\Database\Seeder;
use App\User;
class PortletTableSeeder extends Seeder {
public function run()
{
$json = File::get("database/data/portlets.json");
$data = json_decode($json);
foreach ($data as $obj) {
'id' => $obj->id,
'html_code' => $obj->html_code,
'dummy_data' => $obj->dummy_data,
//more objects..
));
}
}
}
?>
这是正确的执行方式吗?并将其调用到 blade 文件中,例如如果 gulpfile 中 theme/portlet 的 id 我有 mixstyles 的名称,我可以这样吗:
<link href="css/{{$id}}.css" rel="stylesheet" type="text/css" />
我认为最好的方法是在前端管理 HTML 代码(使用 blade)。从数据库获取数据集并在前端创建动态页面。
您可以设计单独的 blade 文件并动态加载。
public function create()
{
$data = Portlet::get();
if(condition)
return view('design.form1',compact('data'));
else
return view('design.form2',compact('data'));
}
如果您想在 mysql 数据库中保留 json 数据,请遵循 link。