php - 如何在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
我的代码的输出是:
解决方案
在这里,我们需要两个循环来显示这些菜单及其子菜单。尝试这个
$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
推荐阅读
- php - 数据未插入到数据库表中
- c - OpenGL 纹理未渲染 (C)
- android - Flutter 应用程序在发布模式下显示灰屏,但在调试模式下工作正常
- amazon-web-services - 如何使用 CDK 将步进功能集成到 API 网关?
- html - CSS 淡出过渡,但元素位置仍保留一些空间
- heroku - 如何将使用@nuxtjs/apollo 模块的nuxt 应用程序部署到heroku?
- java - 文件名在 Android Studio 的 TextView 中显示不正确
- php - 如何在本地服务器 Xampp 上添加对 PUT 和 DELETE 方法的支持
- python - 如何构建 Flask + Reactjs 项目
- sql - 在 oracle apex 中遇到符号“=”