所以,我有这个数组数组,如下所示:
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
但是'标题'不被认可,我尝试过这样的事情,没有任何作用。我可能会缺少什么?
答案 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