牛骨文教育服务平台(让学习变的简单)
博文笔记

laravel 后台权限 展示,修改

创建时间:2016-10-27 投稿人: 浏览次数:126

后台 权限展示

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 onclick="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 onclick="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"]."onclick="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[]" onclick="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" onclick="javascript:history.back(-1);return false;">
                            返回
                        </button>
                       <button type="submit" class="btn btn-danger pull-right">确 定</button>

                    </div>
                </form>
            </div>
        </div>
    </div>

@stop


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。