pages = [ 'name' => '角色' ]; } public function shareData($show='') { $permissions = Permission::where('guard_name',$this->guard_name)->get(); return ['permission'=>$permissions]; } public function checkRule( $id='') { if (!$id) { return [ 'name' => 'required|unique:roles,name', 'permissions' =>'required', ]; } return [ 'name' => 'required|unique:roles,name,' . $id, 'permissions' =>'required', ]; } public function setErrorMsg(){ $messages = [ 'name.required' => ':attribute必填', 'permissions.required' => '权限规则必填', ]; return $messages; } public function setModel() { return new Role(); } public function saveAfter($request,$model,$id='') { $permissions = $request->input('permissions'); if($id) { $p_all = Permission::where('guard_name',$this->guard_name)->pluck('id');//获取所有权限 $p = Permission::whereIn('id', $permissions)->pluck('id'); //移除 $model->revokePermissionTo($p_all); //附加 $model->givePermissionTo($p); }else { $p = Permission::whereIn('id', $permissions)->pluck('id'); $model->givePermissionTo($p); } } public function apiJson(Request $request) { $offset = $request->input('page', 1); $pagesize = $request->input('limit', 1); $offset = ($offset - 1) * $pagesize; $key = $request->input('search', ''); $order_id = $request->input('sort', 'id'); $order_type = $request->input('order', 'desc'); $debug = $request->input('debug', 0); $model = $this->setModel(); if ($key != '') { $model = $model->whereRaw('name like ?', ['%' . $key . '%']); } $total = $model->count(); $result = $model->skip($offset)->with('permissions')->orderBy($order_id, $order_type)->orderBy('id', 'desc')->take($pagesize)->get();; $narr = array(); foreach ($result as $k => $v) { $v['edit_url']=action($this->route['controller_name'] . '@edit', ['id' => $v->id]); $v['edit_post_url']=action($this->route['controller_name'] . '@update', ['id' => $v->id]); $v['perssions']=$v->permissions()->pluck('name'); $narr[] = $v; } $json = [ "status"=>1, 'code'=>$total>0?0:1, 'msg'=>$total>0?'请求数据成功':'暂无数据', 'count' => $total, 'data' => $narr ]; if ($debug) { return $this->jsonDebug($json); } return response()->json($json); } }