Laravel 5.1 Blade - 循环数组直到其内部数组结束

Posted

技术标签:

【中文标题】Laravel 5.1 Blade - 循环数组直到其内部数组结束【英文标题】:Laravel 5.1 Blade - Loop an array until its inner array end 【发布时间】:2016-06-22 08:53:59 【问题描述】:

我如何循环一个数组(目录列表)直到它在 Laravel Blade 上没有循环?

Array
(
    [0] => 0.jpg
    [1] => 1.jpg
    [2] => 2.jpg
    [3] => 3.jpg
    [FolderA] => Array
        (
            [0] => A1.jpg
            [1] => A2.jpg
            [FolderB] => Array
                (
                    [0] => B1.jpg
                    [1] => B2.jpg
                    [2] => B3.jpg
                    [3] => B4.jpg
                )
        )

)

在我的 view.blade.php 上,我在数组上设置了 foreach 循环, 但我不知道如何无休止地循环数组。

<ul>
@foreach($dir_files as $dir_name=>$file)
        @if(is_array($file))
           //stuck at here, I cant run a foreach loop inside here right?
           //should I use include?
        @else
            <li>
                <a href=""> $file </a>
            </li>
        @endif
@endforeach
</ul>

我们有什么方法可以用blade无限循环3level、5level、10level数组吗?

我确定我可以循环数组并在数组中预编译 ul li 标记,然后在刀片上回显,但我可以知道 laravel 刀片是否有任何方法可以执行循环直到内部数组结束?

【问题讨论】:

【参考方案1】:

你可以用部分来做到这一点。假设此代码位于名为partials\partial.blade.php 的视图文件中。你可以这样做:

<ul>
@foreach($dir_files as $dir_name=>$file)
        @if(is_array($file))
           @include('partials.partial', ['dir_files' => $file])
        @else
            <li>
                <a href=""> $file </a>
            </li>
        @endif
@endforeach
</ul>

【讨论】:

谢谢!我今天学到了新东西!不知道 laravel 的 @include 函数可以做这么多事情,而不仅仅是包含文件。

以上是关于Laravel 5.1 Blade - 循环数组直到其内部数组结束的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.1 Blade模板引擎

如何在 Laravel 5.1 中从 Blade 调用控制器动作?

在 Laravel 5.1 中使用 Blade 访问嵌套 URL

Laravel 5.1 Ajax 从 Blade View 获取 html

Laravel系列5.1Blade模板开发

将 Laravel 路由中的数组传递给 Blade 模板