我在Laravel刀片中输出键值对列表时遇到问题。
我的 show.blade.php 模板是:
@extends('layouts.app')
@section('content')
<ul>
@foreach ($datapoint as $key => $value)
<li>{{ $key, $value }}</li>
@endforeach
</ul>
{{ $datapoint }}
@endsection
显示此模板的控制器是:
<?php
namespace AppHttpControllers;
use AppHyfes;
use IlluminateHttpRequest;
class CaptainController extends Controller
{
public function getLiveData ()
{
$datapoint = Hyfes::find(1);
return view('captain.show')->with('datapoint', $datapoint);
}
}
输出到浏览器中视图的数据如下所示:
- 递增
- 存在
- 是最近创建的
时间 戳
{"日期":"08/07/2017","时间":"12:02:25","boat_name":"气旋","current_location":"北格林威治码头","状态":"停靠","登船":26,"下船":2,"people_on_board":24,"current_speed":0,"hotel_power":231,"battery_power_demand":342,"battery_output_power":23,"engine_output_power":12,"battery_power_stored":100,"battery_depth_of_discharge":323,"fuel_consumption_rate":7,"氮氧化物":432,"CO2":213,"battery_state_of_charge":100,"id":1}
理想情况下,我希望看到一个项目符号列表,例如:
- 日期: 8/07/2017
- 时间: 12:00:01
- boat_name:旋风
函数Hyfes::find(1)
将返回AppHyfes
类型的对象,而不是数组。通过循环键值对,您将获得所有属性。Laravel添加了许多额外的属性来跟踪对象。
更好的方法是使用 LaravelgetAttributes
函数。这将仅获取从数据库加载的属性。 这样:
@foreach ($datapoint->getAttributes() as $key => $value)
<li>{{ $key }}: {{ $value }}</li>
@endforeach
您正在尝试迭代模板中的非数组变量。您必须明确您希望在模板中看到的对象的值。
@extends('layouts.app')
@section('content')
<ul>
<li>date: {{ $datapoint->date }}</li>
<li>time: {{ $datapoint->time }}</li>
<!-- and so on -->
</ul>
@endsection