【问题标题】:Laravel - nested foreach loopLaravel - 嵌套的 foreach 循环
【发布时间】:2020-03-17 19:07:27
【问题描述】:

我正在尝试移动在框架之外创建的 webapp CRUD 解决方案, 现在将它移到 Laravel 中。下面你会看到“标准 PHP”部分,这是一个可以工作的代码,以及“Laravel 不能工作。

问题:如何在 Laravel 中编写嵌套的 foreach 循环,与在标准 PHP 示例中编写的一样?

Laravel

<table>

    <!-- https://laravel.com/docs/5.7/blade#loops -->

    @foreach ($response_body as $key => $value)
        @foreach ($value as $level2data => $array)

    <tr>
        <td>
           Hello
        </td>
    </tr>

        @endforeach
    @endforeach

</table>

laravel 代码结果(浏览器打印):

@foreach ($response_body as => $value) 
    @foreach ($value as $level2data => array) 

    @endforeach 
@endforeach
Hello 

标准 PHP

<table>        

<?php foreach ($response_body as $key => $value):?>
        <?php foreach ($value as $level2data => $array):?>

    <tr>
        <td id="email">
            <?php echo "hello" . "\r\n"; ?>
       </td>
    </tr>
    <?php endforeach; ?>
<?php endforeach; ?>

</table>

【问题讨论】:

  • 你的代码中有一些明显的错误
  • 1.您在循环外启动&lt;table&gt;,但在循环内关闭表&lt;/table&gt;
  • 这一行:@foreach ($resonse_body as =&gt; $value) 我想你的意思是@foreach ($resonse_body as $value)
  • 因此,如果您修复了小 TYPO,您至少会更接近解决方案
  • @RiggsFolly 谢谢,我更新了代码,调整了错别字。我有点困惑为什么“foreach”和“endforeach”会打印到浏览器中。

标签: php laravel loops foreach nested


【解决方案1】:

如何在控制器中构建一个数组而不是嵌套循环?

不要有 2 个循环,而是预处理您的最终数组,这样您就可以清理您的代码,也许您可​​以优化您的渲染时间。

【讨论】:

  • - 这是因为我从 API 源获取数据。在本地获取数据时,我将数据从 json 格式转换为 PHP 数组。我使用嵌套 foreach 循环的原因是数组是一个多维数组,因此我需要的数据在数组结构中的 level2/level3 上。我将返回并构建 API 客户端数据流,看看我是否可以从那里遵循您提到的建议。
  • 我会尝试直接在控制器中构建API客户端,点击json数据并将其转换为PHP数组。
猜你喜欢
  • 2016-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
  • 2012-05-16
  • 2021-06-19
  • 2021-05-05
相关资源
最近更新 更多