首页 > 解决方案 > 如何在foreach中处理foreach?

问题描述

我需要遵循“DRY”的概念,所以我的代码中有很多重复。决定尽可能缩短它!

我需要达到的设计是: 在此处输入图像描述

我的闭嘴:

   @php
        $names = [
            'main','settings', 'admins','roles'
        ];
        $values = [
            'main_page','setting','admin','role'
        ];
    @endphp

    @foreach ($names as $name)
        <main class="role_me">
                -- {{ $name }}
            <div class="roles">
                @foreach ($values as $value)
                    <label><input type="checkbox" name="permission[]" value="{{ $value}}_read">Read</label>
                    <label><input type="checkbox" name="permission[]" value="{{ $value}}_create">Create</label>
                    <label><input type="checkbox" name="permission[]" value="{{ $value}}_update">Update</label>
                    <label><input type="checkbox" name="permission[]" value="{{ $value}}_delete">Delete</label>
                @endforeach
            </div>
        </main>
    @endforeach

我的代码的输出是:

在此处输入图像描述

标签: phplaravellaravel-blade

解决方案


在这里,我们需要两个循环来显示这些菜单及其子菜单。尝试这个

$action = ["Edit", "Read", "Delete", "Add"];

$categories = ["Menu", "Roles", "Users"];

for($i = 0; $i < count($categories); $i++) {
    echo $categories[$i]. "<br>";
    for($j = 0; $j < count($action); $j++) {
       echo $categories[$i]. " " .$action[$j] . "<br>";
    }
}

像这样输出。

Menu
Menu Edit
Menu Read
Menu Delete
Menu Add
Roles
Roles Edit
Roles Read
Roles Delete
Roles Add
Users
Users Edit
Users Read
Users Delete
Users Add

推荐阅读