mysql - Laravel 从 mysql 表中显示刀片视图的数据
问题描述
我只是做一些尝试来可视化充满工厂faker fzaninotto的mysql表的数据。
这是我的工厂文件:
$factory->define(Boat::class, function (Faker $faker) {
return [
'name'=> $faker -> name,
'images' => json_encode(["description" => $faker->sentence($nbWords = 2, $variableNbWords = true),
"url" => $faker->imageUrl($width = 800, $height = 600, 'cats', true, 'Faker', true),
"sortOrder" => $faker->randomDigitNotNull]
),
];
这是迁移模式:
public function up()
{
Schema::create('boats', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->json('images');
$table->timestamps();
});
控制器功能:
public function listBoats()
{
$data = Boat::all();
return view('frontendViews.listBoats',['data'=>$data]);
}
现在我可以使用 {{$boat->name}} 访问数据以获取船的名称,但是如何获取图像 src 链接的 url?
'name'=> $faker -> name,
'images' => json_encode(["description" => $faker->sentence($nbWords = 2, $variableNbWords = true),
"url" => $faker->imageUrl($width = 800, $height = 600, 'cats', true, 'Faker', true),
"sortOrder" => $faker->randomDigitNotNull]
),
谢谢
解决方案
由于您{{ $boat->name }}
用于访问名称,因此您可以使用{{ $boat->images }}
来访问图像的 JSON 格式字符串
由于图像以 JSON 格式存储在数据库中(如您所述),因此 JSON 格式的字符串应如下所示:
{
"description" : "this is the image of a car",
"url" : "https://somewhere.com/img/car.png",
"sortOrder" : 1
}
为了访问 URL,您需要对 JSON 进行“解码”/“反序列化”/“解析”,然后获取“URL”键/属性
json_encode()
在原生 PHP 中,您使用和进行 JSON 序列化和反序列化json_decode()
因此,为了获取图像 URL:{{ json_decode($boat->images, true)["url"] }}
如果您需要有关 JSON 格式的参考:
推荐阅读
- mysql - 解决以下代码中 mysql #1064 错误的方法?
- python - 当满足某些条件时,你能打破过滤功能吗?例如,如果 x == 237 我想打破过滤器功能
- python - Apache Airflow 的 hive thrift 或 HiveMetastore 的问题
- glsl - Vulkan Uniform 中的数组问题
- kubernetes - 获取有关 AKS 中的污点控制器事件的通知
- 3d - Yaw-Roll-Pitch 变换
- sql - 如何在 SQL 中返回分多天的事件持续时间?
- pytorch - 在 Pytorch 中构建和训练自动编码器以降低向量输入的维度
- c# - 尝试安装 Emgu.CV.runtime.windows VS 2019 winforms,框架 4.8 时出现 EMGU 错误
- elasticsearch - 如何执行此弹性搜索查询