后台 权限展示
RoleController
public function show($id)
{
$permissionRole = PermissionRole::orderBy('permission_id','asc')->get()->toArray();
$permissions = Permission::all()->toArray();
/*$a = array();
$b = array();
foreach($permissions as $value){
foreach($permissionRole as $v){
if($value['id'] == $v['permission_id'] && $id == $v['role_id']){
$a[] = $value['id'];
$str = '<input type="checkbox" name="id" checked value='.$value['id'].'>'.$value['display_name'];
$b[$value['id']] = $str;
}
}
}
foreach($permissions as $val){
if(in_array($val['id'],$a)){
continue;}
else{
$str = '<input type="checkbox" name="id" value='.$val['id'].'">'.$val['display_name'];
$b[$val['id']] = $str;
}
}
ksort($b);
foreach($b as $mm) {
echo $mm;
}*/
return view('roles.show',compact('permissions','permissionRole','id'));
}
public function roleStore(Request $request,$id) { $permissoinRole = PermissionRole::where('role_id',$id)->get()->toArray(); $arr_perMI = array(); $arr_pr = array(); foreach ($request['permission_id'] as $item =>$v){ $data = [ 'permission_id'=>$v, 'role_id'=>$id ]; array_push($arr_perMI,$data); } // var_dump($arr_perMI);
//新增角色权限 foreach ($arr_perMI as $key =>$value){ if(!in_array($value,$permissoinRole)){ $permissoinRoles = new PermissionRole(); $permissoinRoles->permission_id = $value['permission_id']; $permissoinRoles->role_id = $value['role_id']; $permissoinRoles->save(); } }
//删除角色权限 foreach ($permissoinRole as $k =>$v){ if(!in_array($v,$arr_perMI)){ $p = $v['permission_id']; $r = $v['role_id']; $permissoinRole = PermissionRole::where('permission_id',$p)->where('role_id',$r)->delete(); } } return redirect()->route('role.index'); }
@extends('layouts.main') @section('content') <div class="row"> <div class="col-md-12"> <div class="box box-info"> <form class="form-horizontal" action="{{URL::to('role/'.$id.'/roleStore')}}" method="get" enctype="multipart/form-data"> <div class="box-header with-border"> <a href="{{URL::to('role/')}}" class="box-title">角色列表</a> <input type="hidden" name="_token" value="{{csrf_token()}}"> </div> <div class="box-body"> <?php $a = array(); $b=array();
foreach($permissions as $value){
foreach($permissionRole as $v){ if($value['id'] == $v['permission_id'] && $id == $v['role_id']){
//找出角色的已拥有的权限
$a[] = $value['id'];
//利用正则 筛选出 还有 index 的权限 if(strpos($value['name'],'index') == false){ $str ="---- ----". '<input type="checkbox" name="permission_id[]" checked οnclick="checkbox()" value='.$value['id'].'>'.$value['display_name']."<br>"; //把$str 按$value['id'] 放入 $b[] 有利于 排序
$b[$value['id']] = $str; }else{ $str = "<p style='color: gold; font-style: italic;font-size: larger'>" .'<input type="checkbox" name="permission_id[]" checked οnclick="checkbox()" value='.$value['id'].'>'.$value['display_name']."<br>"."</p>"; $b[$value['id']] = $str; } } } }
foreach($permissions as $val){
//排除已拥有的权限 即 未选的权限 if(in_array($val['id'],$a)){ continue;
} else{ $a[] = $val['id']; if(strpos($val['name'],'index') == false){ $str = " ---- ----".'<input type="checkbox" name="permission_id[]" value='.$val['id'].'οnclick="checkbox()">'.$val['display_name']."<br>"; $b[$val['id']] = $str; }else{ $str = "<p style='color: gold ;font-style: italic;font-size: larger'>" .'<input type="checkbox" name="permission_id[]" οnclick="checkbox()" value='.$val['id'].'>'.$val['display_name']."<br>"."</p>"; $b[$val['id']] = $str; } } }
//按照键名对关联数组进行升序排序: ksort($b); foreach($b as $mm) { echo $mm; } ?> </div> <script> function checkbox(){ var flag = 0; $("input[name='permission_id[]']:checkbox").each(function () { if ($(this).attr("checked")) { flag += 1; } }) } </script> <div class="box-footer"> <button type="button" class="btn btn-default" οnclick="javascript:history.back(-1);return false;"> 返回 </button> <button type="submit" class="btn btn-danger pull-right">确 定</button> </div> </form> </div> </div> </div> @stop