php - 在 Laravel 中显示和引用 json_encode
问题描述
我不确定显示它的最佳方法是什么。我正在为我的网站创建一个可在不同控制器之间调整的活动日志。这是我的编码代码:
$properties = [
'last_name' => $request->last_name,
'first_name' => $request->first_name,
'dob' => $request->dob,
'unique_id' => $unique_id,
'doctor_id' => $doctor->id
];
$log->properties = json_encode($properties);
但是,不同控制器上的属性可能具有revenue
,address
等字段。
在我的活动日志控制器的显示页面上,现在我正在使用{{$log->properties}}
它来显示对象。它返回类似这样的输出:
{"last_name":"Test4","first_name":"Test4","dob":"1984-09-13","unique_id":"Test4Test41984-09-13","doctor_id":19}
最终,我想做的是让它将每个对象的项目显示为<strong>
标签,然后显示相关信息。因此,在简单的 html 中,上述属性如下所示:
<strong>last_name:</strong> Test4<br>
<strong>first_name:</strong> Test4<br>
<strong>dob:</strong> 1984-09-13<br>
<strong>unique_id:</strong>Test4Test41984-09-13<br>
<strong>doctor_id:</strong> 19
由于每个属性中的键不同,具体取决于从哪个控制器中提取,我不确定如何显示它。我什至无法找出如何引用对象内部。例如,{{$key->properties->last_name}}
不引用姓氏。也没有{{$key->properties()->last_name}}
。
解决方案
当您使用 json_encode 将对象存储在$log->properties中时,您正在将对象转换为 json 字符串,这是因为您不能使用$key->properties->last_name,为此您可以在$key中使用 json_decode ->properties变量,然后您将可以访问每个属性。
要显示数据而不考虑变量名称,您可以执行以下操作:
$properties = json_decode($key->properties, true);
foreach ($properties as $key => $value) {
echo '<strong>'.$key.':</strong> '.$value.'<br>';
}
或者你可以使用刀片来显示这个,关键是你需要将你的 json 转换为一个数组,然后遍历他的键和值。
推荐阅读
- aws-iot - AWS androidIoT:KEYSTORE_PATH 位置
- ios - iOS Swift 如何在后台播放 AudioServicesPlaySystemSound 或 AudioServicesPlayAlertSound
- react-native - React Native 中使用的 Webview 中的“无效 CORS 请求”错误
- javascript - 谁在 Web 浏览器中实际执行 HTTP 请求?
- haskell - Haskell:等效的数组循环比较
- spring - 如何在基于 Spring 的反应式应用程序中从身份验证中排除路径?
- php - 执行命令在 sql server 中不起作用
- selenium - GMail - 等待页面完全加载
- r - ggplot2 中的轴标签被截断或覆盖图形
- python-3.x - Python - 将 Chrome 以外的浏览器与 webbot 包一起使用