无法显示数组值
Can't display array values
所以,我有这个数组,像这样:
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],
],
这些数组在模型代码中,我想在我的页面中显示它们。
此外,来自模型:
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
但是 'title' 无法识别,我已经尝试了一些类似的方法,但没有任何效果。我可能遗漏了什么?
您正试图在数组数组中遍历数组键,这是不可能的。
您首先需要遍历外部数组,然后您可以访问内部键的内容,如下所示:
@foreach($items as $item)
{{ $item['title'] }}
@foreach($item['tables'] as $table)
{{ $table['title'] }}
@endforeach
@endforeach
首先,如果你return变量有一个视图,你可以更好地使用php的紧凑功能,这样你就不会重复自己。这是一个例子:
return view('welcome', compact('items'));
并且由于您使用了 dd(),它会转储数组中的所有内容,然后死掉。
如果您想显示所有项目,您确实应该使用 foreach 循环,但像这样:
@foreach($items as $item)
{{ $item['title'] }}
@foreach($item['tables'] as $table)
{{ $table['title'] }}
@endforeach
@endforeach
所以,我有这个数组,像这样:
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],
],
这些数组在模型代码中,我想在我的页面中显示它们。 此外,来自模型:
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
但是 'title' 无法识别,我已经尝试了一些类似的方法,但没有任何效果。我可能遗漏了什么?
您正试图在数组数组中遍历数组键,这是不可能的。
您首先需要遍历外部数组,然后您可以访问内部键的内容,如下所示:
@foreach($items as $item)
{{ $item['title'] }}
@foreach($item['tables'] as $table)
{{ $table['title'] }}
@endforeach
@endforeach
首先,如果你return变量有一个视图,你可以更好地使用php的紧凑功能,这样你就不会重复自己。这是一个例子:
return view('welcome', compact('items'));
并且由于您使用了 dd(),它会转储数组中的所有内容,然后死掉。 如果您想显示所有项目,您确实应该使用 foreach 循环,但像这样:
@foreach($items as $item)
{{ $item['title'] }}
@foreach($item['tables'] as $table)
{{ $table['title'] }}
@endforeach
@endforeach