laravel 后台权限 展示,修改

后台 权限展示

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

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值