【发布时间】:2020-05-11 10:49:43
【问题描述】:
我想要一些建议或解决我遇到的情况的方法。我正在构建一个访问管理系统,我必须在其中为每个模块定义创建、读取、更新和删除的权限。通过定义每个模块的权限,管理员将创建一个角色,稍后将分配给用户。如前所述,我有大约 14 个模块,每个模块都有四个权限。我通过一个复选框获取每个权限的输入,因此我有几个复选框,其父字段具有每个模块的id。这里有一些代码可以更好地理解我想要实现的目标以及我的方法是什么。
HTML:
<!-- Iteration loop starts here for rendering each module along with it's checkboxes -->
<tr>
<th scope="row">{{$mod->m_name}}</th>
<input type="hidden" name="module_id" value="{{$mod->m_id}}">
<td><input type="checkbox" name="p_read" value="1"></td>
<td><input type="checkbox" name="p_create" value="1"></td>
<td><input type="checkbox" name="p_update" value="1"></td>
<td><input type="checkbox" name="p_delete" value="1"></td>
</tr>
<!-- Loop ends here -->
JavaScript:
var foo = $('#formAddRole').serializeArray();
var json = {"module" : []};
$.each(foo, (key, obj)=>{
var arr = {
"module_id" : 0,
"permissions" : {
"create" : 0,
"read" : 0,
"update" : 0,
"delete" : 0,
}
};
if(obj.name == "p_read"){
arr.permissions.read = 1;
json.module.push(arr);
}
// conditions for 'p_create', 'p_update', 'p_delete' goes here...
if(obj.name == "module_id"){
arr.module_id = obj.value;
json.module.push(arr);
}
});
我要发送到服务器的 JSON 结构:
{"modules" : [
{
"module_id" : 1,
"permissions" : {
"create" : 1,
"read" : 1,
"update" : 1,
"delete" : 0,
}
},
{
"module_id" : 2,
"permissions" : {
"create" : 0,
"read" : 1,
"update" : 1,
"delete" : 0,
}
},
// so on...
]}
我被困在这一点上。我使用的逻辑对我来说并不完全有用。有什么更好的方法,我怎样才能以最好的方式实现这一目标?任何帮助或建议将不胜感激。谢谢!
【问题讨论】:
标签: javascript html json laravel logic