blade 模板中的递归嵌套数组
Recursing nested array in blade template
我正在尝试在 Laravel 中循环出一个菜单。
我正在将嵌套数组传递给主 blade 模板 categories-management.blade.php
。
View::make('categories-management')->with('categories', $categories);
其中 $categories
是
array (size=3)
'Business Resources' =>
array (size=7)
'Operations' =>
array (size=4)
'resource_type_id' => int 1
27 =>
array (size=3)
'id' => int 27
'name' => string 'Design & Development' (length=20)
'children' =>
array (size=2)
... truncated ...
然后我用这个踢 categories-management.blade.php
里面的菜单:
@include('/includes/category-menu-item', array('categories', $categories))
内部 includes/category-menu-item
我有以下循环:
@if(is_array($categories))
<ul>
@foreach($categories as $key => $value)
<li>
@if(!is_numeric($key))
<p>{{$key}}</p>
@include('/admin/includes/category-menu-item', array('categories', $value))
@else
<button data-category-id="{{$value->id}}">{{$value->name}}</button>
@include('/admin/includes/category-menu-item', array('categories', $value->children))
@endif
</li>
@endforeach
</ul>
@endif
这显然仍然不完整,但我已经遇到模板从未通过第一层并打印出来的问题:
商业资源
商业资源
商业资源
商业资源
... ETC ...
如何让 Laravel 识别新的数组值?或者有更好的方法吗?
您的 @include
陈述不正确。传递给视图的数据需要是一个 associated 数组,你已经传递了一个带有数字键的数组。您必须将 array('categories', $value)
更改为 array('categories' => $value)
:
@if(is_array($categories))
<ul>
@foreach($categories as $key => $value)
<li>
@if(!is_numeric($key))
<p>{{$key}}</p>
@include('/admin/includes/category-menu-item', array('categories' => $value))
@else
<button data-category-id="{{$value->id}}">{{$value->name}}</button>
@include('/admin/includes/category-menu-item', array('categories' => $value->children))
@endif
</li>
@endforeach
</ul>
@endif
我正在尝试在 Laravel 中循环出一个菜单。
我正在将嵌套数组传递给主 blade 模板 categories-management.blade.php
。
View::make('categories-management')->with('categories', $categories);
其中 $categories
是
array (size=3)
'Business Resources' =>
array (size=7)
'Operations' =>
array (size=4)
'resource_type_id' => int 1
27 =>
array (size=3)
'id' => int 27
'name' => string 'Design & Development' (length=20)
'children' =>
array (size=2)
... truncated ...
然后我用这个踢 categories-management.blade.php
里面的菜单:
@include('/includes/category-menu-item', array('categories', $categories))
内部 includes/category-menu-item
我有以下循环:
@if(is_array($categories))
<ul>
@foreach($categories as $key => $value)
<li>
@if(!is_numeric($key))
<p>{{$key}}</p>
@include('/admin/includes/category-menu-item', array('categories', $value))
@else
<button data-category-id="{{$value->id}}">{{$value->name}}</button>
@include('/admin/includes/category-menu-item', array('categories', $value->children))
@endif
</li>
@endforeach
</ul>
@endif
这显然仍然不完整,但我已经遇到模板从未通过第一层并打印出来的问题:
商业资源
商业资源
商业资源
商业资源
... ETC ...
如何让 Laravel 识别新的数组值?或者有更好的方法吗?
您的 @include
陈述不正确。传递给视图的数据需要是一个 associated 数组,你已经传递了一个带有数字键的数组。您必须将 array('categories', $value)
更改为 array('categories' => $value)
:
@if(is_array($categories))
<ul>
@foreach($categories as $key => $value)
<li>
@if(!is_numeric($key))
<p>{{$key}}</p>
@include('/admin/includes/category-menu-item', array('categories' => $value))
@else
<button data-category-id="{{$value->id}}">{{$value->name}}</button>
@include('/admin/includes/category-menu-item', array('categories' => $value->children))
@endif
</li>
@endforeach
</ul>
@endif