pap*_*rce 4 php templates laravel blade laravel-4
我有一个项目数组,表示服务器上目录的文件和目录结构.
该$items数组的构造如下:
Array
(
[folder1] => Array
(
[folder1_1] => Array
(
[0] => filenameX.txt
[1] => filenameY.txt
)
)
[pages] => Array
(
)
[0] => filename.txt
[1] => filename1.txt
)
Run Code Online (Sandbox Code Playgroud)
我们想要的,本质<ul>上是<li>针对每个节点.
生成的HTML应该是这样的
现在,我的问题与使用laravel的刀片模板引擎的嵌套包含有关.
我有list.blade.php以下内容的观点
<div class="listing">
@include('submenu', array('items', $items))
</div>
Run Code Online (Sandbox Code Playgroud)
我把这个数组传递给它:
View::make('list')->with('items', $items)
包含的模板(submenu.blade.php)具有以下内容:
<ul>
@foreach($items as $key=>$value)
@if (is_array($value))
<li>{{$key}}/
@include('submenu', array('items', $value))
</li>
@else
<li>{{$value}}</li>
@endif
@endforeach
</ul>
Run Code Online (Sandbox Code Playgroud)
我@inlude自己内部的相同模板但是使用新数据,以防它$value是一个数组(目录)
首先,这有可能吗?
如果没有,是否有另一种方法可以达到预期的效果?
TIA,
是的,这确实是可能的.
但是,您的包含中存在问题,您有:
@include('submenu', array('items', $value))
Run Code Online (Sandbox Code Playgroud)
它应该是:
@include('submenu', array('items' => $value))
Run Code Online (Sandbox Code Playgroud)
值得注意的是另一个隐藏的刀片状态,@each.您可以使用它而不是自己循环遍历数组,如下所示:
<ul>
@each('item.detail', $items, 'item')
</ul>
Run Code Online (Sandbox Code Playgroud)
然后,您创建一个名为的新刀片文件,item.detail并弹出您之前在该文件中循环中的内容.它有助于清理您的视图,使其具有越来越多的嵌套循环.
当您进入新刀片文件时,该项目的数据将保留在第三个参数中,在本例中 $item
| 归档时间: |
|
| 查看次数: |
4203 次 |
| 最近记录: |