Laravel blade 遍历 php array/object

Laravel blade iterating over php array/object

我无法输出 Laravel blade 中的键值对列表。

我的 show.blade.php 模板是:

@extends('layouts.app')

@section('content')

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

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

    @endforeach
  </ul>

  {{ $datapoint }}
@endsection

显示此模板的控制器是:

<?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);
    }
}

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

理想情况下,我希望看到一个要点列表,显示例如:

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

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

@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