Laravel Blade 迭代 php 数组/对象

ugo*_*chi 1 php laravel blade laravel-5.4

我在 Laravel Blade 中输出键值对列表时遇到问题。

我的 show.blade.php 模板是:

@extends('layouts.app')

@section('content')

  <ul>
    @foreach ($datapoint as $key => $value)

      <li>{{ $key, $value }}</li>

    @endforeach
  </ul>

  {{ $datapoint }}
@endsection
Run Code Online (Sandbox Code Playgroud)

我显示这个模板的控制器是:

<?php

namespace App\Http\Controllers;

use App\Hyfes;

use Illuminate\Http\Request;

class CaptainController extends Controller
{
    public function getLiveData ()
    {
      $datapoint = Hyfes::find(1);

      return view('captain.show')->with('datapoint', $datapoint);
    }
}
Run Code Online (Sandbox Code Playgroud)

在浏览器中输出到视图的数据是这样的:

  • 递增
  • 存在
  • 是最近创建的
  • 时间戳

    {"date":"08/07/2017","time":"12:02:25","boat_name":"cyclone","current_location":"North Greenwich Pier","status":"停靠" ,"登船":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,"nox":432,"co2":213,"battery_state_of_charge":100,"id":1}

理想情况下,我希望看到一个项目符号列表,例如:

  • 日期:8/07/2017
  • 时间:12:00:01
  • 船名:旋风

Jer*_*dev 5

该函数Hyfes::find(1)将返回该类型的对象App\Hyfes而不是数组。通过循环键值对,您将获得所有属性。Laravel 添加了许多额外的属性来跟踪对象。

一个更好的方法是使用 LaravelgetAttributes函数。这只会获取从数据库加载的属性。像这样:

@foreach ($datapoint->getAttributes() as $key => $value)
    <li>{{ $key }}: {{ $value }}</li>
@endforeach
Run Code Online (Sandbox Code Playgroud)