无法显示数组值

时间:2017-07-10 23:42:19

标签: php arrays laravel laravel-5.4 blade

所以,我有这个数组数组,如下所示:

protected static $base = [
        [
            'id' => 4,
            'createdAt' => 1498638933,
            'title' => 'Example 1',
            'tables' => [
                ['title' => '#1', 'createdAt' =>  1498638940],
                ['title' => '#2', 'createdAt' =>  1498638941],
                ['title' => '#3', 'createdAt' =>  1498638943],
            ],
        ],
        [
            'id' => 7,
            'createdAt' => 1498643923,
            'title' => 'Example 2',
            'tables' => [
                ['title' => '#1',  'createdAt' =>  1498643925],
                ['title' => '#2',  'createdAt' =>  1498643929],
                ['title' => '#3',  'createdAt' =>  1498643932],
            ],

这些数组在Model代码中,我想在我的页面中显示它们。 另外,从模型:

    public static function getAll() {
    sleep(1);
    return self::$base;
}

来自web.php(路线),我有:

Route::get('/', function () {
    $items = \App\MyModel::getAll();
    return view('welcome')->with('items', $items);
});

现在,如果我尝试:

       {!! dd($items) !!}

显示所有数组,但不是很漂亮。我只想要他们的内容。所以,我按照这些步骤(https://laracasts.com/discuss/channels/general-discussion/passing-arrays-to-blade-and-iterating)成了:

@foreach($items['title'] as $title => $content)
    {{ $title }}
    @foreach ($content as $tables => $item)
        {{ $tables . ' => ' . $item }}
    @endforeach
@endforeach

但是'标题'不被认可,我尝试过这样的事情,没有任何作用。我可能会缺少什么?

2 个答案:

答案 0 :(得分:1)

您正试图在数组数组中循环数组键,这是不可能的。

首先需要遍历外部数组,然后您可以访问内部的键内容,如下所示:

@foreach($items as $item)
   {{ $item['title'] }}
   @foreach($item['tables'] as $table)
      {{ $table['title'] }}
   @endforeach
@endforeach

答案 1 :(得分:1)

首先,如果你用视图返回变量,你可以更好地使用php的紧凑功能,这样你就不会重复了。这是一个例子:

return view('welcome', compact('items'));

由于你使用dd(),它会转储数组中的所有内容然后死掉。 如果你想显示所有项目,你确实应该使用foreach循环,但是像这样:

@foreach($items as $item)
   {{ $item['title'] }}
   @foreach($item['tables'] as $table)
      {{ $table['title'] }}
   @endforeach
@endforeach