user.php

  1. <?php
  2.  
  3. /*
  4. |--------------------------------------------------------------------------
  5. | Web Routes
  6. |--------------------------------------------------------------------------
  7. |
  8. | Here is where you can register web routes for your application. These
  9. | routes are loaded by the RouteServiceProvider within a group which
  10. | contains the "web" middleware group. Now create something great!
  11. |
  12. */
  13. Route::group(['middleware' => ['\iqiyi\Http\Middleware\VerifyCsrfToken::class']], function () {
  14. //支付订单
  15. Route::any('order/{action}', function(\iqiyi\Http\Controllers\Order $index, $action,\Illuminate\Http\Request $request ){
  16.  
  17. return $index->$action($request);
  18. })->middleware('authAdmin');
  19.  
  20. // 报告
  21. Route::any('report/{action}', function(\iqiyi\Http\Controllers\Report $index, $action,\Illuminate\Http\Request $request ){
  22.  
  23. return $index->$action($request);
  24. })->middleware('authAdmin');
  25.  
  26. // 数据统计
  27. Route::any('statistics/{action}', function(\iqiyi\Http\Controllers\Statistics $index, $action,\Illuminate\Http\Request $request ){
  28. return $index->$action($request);
  29. })->middleware('authAdmin');
  30. // 图片管理
  31. Route::any('img/{action}', function(\iqiyi\Http\Controllers\Img $index, $action,\Illuminate\Http\Request $request ){
  32.  
  33. return $index->$action($request);
  34. //dump($request);
  35. })->middleware('authAdmin');
  36. // 用户管理
  37. Route::any('user/{action}', function(\iqiyi\Http\Controllers\User $index, $action,\Illuminate\Http\Request $request ){
  38.  
  39. return $index->$action($request);
  40. })->middleware('authAdmin');
  41. // 角色管理
  42. Route::any('role/{action}', function(\iqiyi\Http\Controllers\Role $index, $action,\Illuminate\Http\Request $request ){
  43.  
  44. return $index->$action($request);
  45. })->middleware('authAdmin');
  46. // 菜单管理
  47. Route::any('menu/{action}', function(\iqiyi\Http\Controllers\Menu $index, $action,\Illuminate\Http\Request $request ){
  48.  
  49. return $index->$action($request);
  50. })->middleware('authAdmin');
  51.  
  52. Route::any('/login', 'Login@index');
  53. Route::any('logout', 'Login@logout');
  54.  
  55. Route::any('/', 'Index@main')->middleware('authAdmin');
  56.  
  57. Route::any('import', 'Import@index')->middleware('authAdmin');
  58.  
  59. Route::any('import/{action}',function(\iqiyi\Http\Controllers\Import $index, $action,\Illuminate\Http\Request $request ){
  60. return $index->$action($request);
  61. })->middleware('authAdmin');
  62.  
  63. Route::any('stock/{action}',function(\iqiyi\Http\Controllers\Stock $index, $action,\Illuminate\Http\Request $request ){
  64. return $index->$action($request);
  65. })->middleware('authAdmin');
  66.  
  67. Route::get('downreport/{filename}/{expname}', function($filename,$expname) {
  68. return response()->download(storage_path('report/'.$filename),$expname.'.xls');
  69. })->middleware('authAdmin');
  70.  
  71. // Route::any('channel/{action}',function(\iqiyi\Http\Controllers\Channel $index, $action,\Illuminate\Http\Request $request ){
  72. // return $index->$action($request);
  73. // })->middleware('authAdmin');
  74. Route::any('importlist', 'Import@lists')->middleware('authAdmin');
  75.  
  76. });

对应的blade模板页面 index.blade.php

  1. @extends('layouts.layout')
  2. @section('content')
  3. <div id="content">
  4. <div class="page-header">
  5. <div class="container-fluid">
  6. <div class="pull-right">
  7. <a href="/user/create" data-toggle="tooltip" title="新增" class="btn btn-primary">新增
  8. </a>
  9. <button type="button" data-toggle="tooltip" title="删除" class="btn btn-danger"
  10. onclick="confirm('确认?') ? $('#form-index').submit() : false;">
  11. 删除
  12. </button>
  13. </div>
  14. <h3 class="htitle">用户管理</h3>
  15. </div>
  16. </div>
  17. <div class="container-fluid">
  18. <div class="panel panel-default">
  19. <div class="panel-heading">
  20. <h3 class="panel-title">
  21. <i class="fa fa-list"></i>
  22. 用户列表
  23. </h3>
  24. </div>
  25. <div class="panel-body">
  26.  
  27. <form action="/user/delete" method="post" id="form-index">
  28. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  29. <div class="table-responsive">
  30. <table class="table table-bordered table-hover">
  31. <thead>
  32. <tr>
  33. <td style="width: 1px;" class="text-center">
  34. <input type="checkbox" id="select-all" title="全选"/>
  35. </td>
  36. <th class="text-left">登录名</th>
  37. <th class="text-left">姓名</th>
  38. <th class="text-left">角色</th>
  39. <th class="text-left">手机号 </th>
  40. <th class="text-left">电话</th>
  41. <th class="text-left">邮箱</th>
  42. <th class="text-left">最后登陆时间</th>
  43. <th class="text-left">状态</th>
  44. <th class="text-right">管理</th>
  45. </tr>
  46. </thead>
  47. <tbody>
  48. @foreach ($users as $user)
  49. <tr>
  50. <td class="text-center">
  51. <input type="checkbox" name="selected[]" value="{{$user->ids}}"/>
  52. </td>
  53.  
  54. <td class="text-left">{{$user->login_name}}</td>
  55. <td class="text-left">{{$user->name}}</td>
  56. <td class="text-left">{{$user->role}}</td>
  57. <td class="text-left">{{$user->phone}}</td>
  58. <td class="text-left">{{$user->mobile}}</td>
  59. <td class="text-left">{{$user->email}}</td>
  60. <td class="text-left">{{$user->login_date}}</td>
  61. <td class="text-left">
  62. @if ($user->status === 0)
  63. 无效
  64. @elseif ($user->status === 1)
  65. 有效
  66. @else
  67. 待审核
  68. @endif
  69. </td>
  70.  
  71. <td class="text-right">
  72. <a href="/user/edit?ids={{$user->ids}}" data-toggle="tooltip" title="编辑"
  73. class="btn btn-primary">编辑
  74. </a>
  75. </td>
  76. </tr>
  77. @endforeach
  78. </tbody>
  79. </table>
  80. </div>
  81. </form>
  82. <div class="pagers ">
  83. {{$users->render()}}
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. <script>
  90. $(function() {
  91. $('#select-all').click(function() {
  92. // 找到需要操作的记录的checkbox,控制状态, 为当前全选checkbox的checked状态
  93. // :checkbox == input[type=checkbox]
  94. $(':checkbox[name="selected[]"]').prop('checked', $(this).prop('checked'));
  95. });
  96. });
  97. </script>
  98. @endsection

create.blade.php

  1. @extends('layouts.layout')
  2. @section('content')
  3. <div id="content">
  4. <div class="page-header">
  5. <div class="container-fluid">
  6. <div class="pull-right">
  7. <button type="submit" form="form-set" data-toggle="tooltip" title="保存" class="btn btn-primary">保存
  8. <i class="fa fa-save"></i>
  9. </button>
  10. <a href="/user/index" data-toggle="tooltip" title="取消" class="btn btn-default">取消
  11. <i class="fa fa-reply"></i>
  12. </a>
  13. </div>
  14. </div>
  15. </div>
  16. <div class="container-fluid">
  17. <div class="panel panel-default">
  18. <div class="panel-heading">
  19. <h3 class="panel-title">
  20. <i class="fa fa-pencil"></i>
  21. @if(isset($id))
  22. 编辑
  23. @else
  24. 添加
  25. @endif
  26. 用户
  27. </h3>
  28. </div>
  29. <div class="panel-body">
  30. <form action="/user/create" method="post" enctype="multipart/form-data" id="form-set"
  31. class="form-horizontal">
  32. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  33. <div class="tab-content">
  34. <div class="tab-pane active" id="tab-general">
  35.  
  36. <div class="form-group ">
  37. <label class="col-sm-2 control-label" for="input-login-name">登录名</label>
  38. <div class="col-sm-10">
  39. <input type="text" required="required" name="login_name" value="{{$user->login_name or ''}}" placeholder=" 登录名" id="input-login-name" class="form-control"/>
  40. </div>
  41. </div>
  42. <div class="form-group ">
  43. <label class="col-sm-2 control-label" for="input-name">姓名</label>
  44. <div class="col-sm-10">
  45. <input type="text"required="required" name="name" value="{{$user->name or ''}}" placeholder=" 姓名" id="input-name" class="form-control"/>
  46. </div>
  47. </div>
  48. <div class="form-group ">
  49. <label class="col-sm-2 control-label" for="input-password_md5">密码 </label>
  50. <div class="col-sm-10">
  51. <input type="password" required="required" name="password_md5" value="{{$user->password or ''}}" placeholder=" 密码 " id="input-password_md5" class="form-control"/>
  52. </div>
  53. </div>
  54. <div class="form-group ">
  55. <label class="col-sm-2 control-label" for="input-role">角色</label>
  56. <div class="col-sm-10">
  57. <select class="form-control" name="role">
  58. @foreach($roles as $role)
  59. <option value ="{{$role->ids}}">{{$role->name}}</option>
  60. @endforeach
  61. </select>
  62. </div>
  63. </div>
  64. <div class="form-group ">
  65. <label class="col-sm-2 control-label" for="input-phone">手机号</label>
  66. <div class="col-sm-10">
  67. <input type="text" required="required" name="phone" value="{{$user->phone or ''}}" placeholder=" 手机号" id="input-phone" class="form-control"/>
  68. </div>
  69. </div>
  70. <div class="form-group ">
  71. <label class="col-sm-2 control-label" for="input-mobile">电话</label>
  72. <div class="col-sm-10">
  73. <input type="text" required="required" name="mobile" value="{{$user->mobile or ''}}" placeholder=" 电话" id="input-mobile" class="form-control"/>
  74. </div>
  75. </div>
  76. <div class="form-group ">
  77. <label class="col-sm-2 control-label" for="input-email">邮箱 </label>
  78. <div class="col-sm-10">
  79. <input type="text" required="required" name="email" value="{{$user->email or ''}}" placeholder=" 邮箱 " id="input-email" class="form-control"/>
  80. </div>
  81. </div>
  82. </div>
  83.  
  84. </div>
  85. </form>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90.  
  91. @endsection

edit.blade.php

  1. @extends('layouts.layout')
  2. @section('content')
  3. <div id="content">
  4. <div class="page-header">
  5. <div class="container-fluid">
  6. <div class="pull-right">
  7. <button type="submit" form="form-set" data-toggle="tooltip" title="保存" class="btn btn-primary">保存
  8. <i class="fa fa-save"></i>
  9. </button>
  10. <a href="/user/index" data-toggle="tooltip" title="取消" class="btn btn-default">取消
  11. <i class="fa fa-reply"></i>
  12. </a>
  13. </div>
  14. </div>
  15. </div>
  16. <div class="container-fluid">
  17. <div class="panel panel-default">
  18. <div class="panel-heading">
  19. <h3 class="panel-title">
  20. <i class="fa fa-pencil"></i>
  21. 编辑用户
  22. </h3>
  23. </div>
  24. <div class="panel-body">
  25. <form action="/user/update?ids={{$user->ids}}" method="post" enctype="multipart/form-data" id="form-set"
  26. class="form-horizontal">
  27. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  28. <div class="tab-content">
  29. <div class="tab-pane active" id="tab-general">
  30.  
  31. <div class="form-group ">
  32. <label class="col-sm-2 control-label" for="input-login-name">登录名</label>
  33. <div class="col-sm-10">
  34. <input type="text" required="required" name="login_name" value="{{$user->login_name or ''}}" placeholder=" 登录名" id="input-login-name" class="form-control"/>
  35. </div>
  36. </div>
  37. <div class="form-group ">
  38. <label class="col-sm-2 control-label" for="input-name">姓名</label>
  39. <div class="col-sm-10">
  40. <input type="text" required="required" name="name" value="{{$user->name or ''}}" placeholder=" 姓名" id="input-name" class="form-control"/>
  41. </div>
  42. </div>
  43. <div class="form-group ">
  44. <label class="col-sm-2 control-label" for="input-password_md5">密码 </label>
  45. <div class="col-sm-10">
  46. <input type="password" required="required" name="password_md5" value="{{$user->password_md5 or ''}}" placeholder=" 密码 " id="input-password_md5" class="form-control"/>
  47. </div>
  48. </div>
  49. <div class="form-group ">
  50. <label class="col-sm-2 control-label" for="input-role">角色</label>
  51. <div class="col-sm-10">
  52. <select class="form-control" name="role">
  53. @foreach($roles as $role)
  54. <option value ="{{$role->ids}}" @if($role->ids == $role_id) selected="selected" @endif>{{$role->name}}</option>
  55. @endforeach
  56. </select>
  57. </div>
  58. </div>
  59. <div class="form-group ">
  60. <label class="col-sm-2 control-label" for="input-phone">手机号</label>
  61. <div class="col-sm-10">
  62. <input type="text" required="required" name="phone" value="{{$user->phone or ''}}" placeholder=" 手机号" id="input-phone" class="form-control"/>
  63. </div>
  64. </div>
  65. <div class="form-group ">
  66. <label class="col-sm-2 control-label" for="input-mobile">电话</label>
  67. <div class="col-sm-10">
  68. <input type="text" required="required" name="mobile" value="{{$user->mobile or ''}}" placeholder=" 电话" id="input-mobile" class="form-control"/>
  69. </div>
  70. </div>
  71. <div class="form-group ">
  72. <label class="col-sm-2 control-label" for="input-email">邮箱 </label>
  73. <div class="col-sm-10">
  74. <input type="text" required="required" name="email" value="{{$user->email or ''}}" placeholder=" 邮箱 " id="input-email" class="form-control"/>
  75. </div>
  76. </div>
  77. </div>
  78.  
  79. </div>
  80. </form>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. @endsection

role.php

  1. <?php
  2. /**
  3. * 角色管理(增删改查)
  4. * Date: 2018/4/12
  5. * Time: 14:24
  6. */
  7.  
  8. namespace iqiyi\Http\Controllers;
  9.  
  10. use Illuminate\Http\Request;
  11. use Illuminate\Support\Facades\DB;
  12. use iqiyi\Models\SysMenu;
  13.  
  14. class Role extends Controller
  15. {
  16. /*角色列表索引页*/
  17. public function index(Request $request)
  18. {
  19. ## 获取分页数据
  20. $roles=DB::table('sys_role')->orderBy('ids','asc')->paginate(10);
  21. // dd($roles);
  22.  
  23. ## 响应视图
  24. return view('role.index')
  25. ->with('roles', $roles)
  26. ;
  27.  
  28. }
  29. public function create(Request $request)
  30. {
  31. # 展示表单
  32. if ($request->isMethod('get')) {
  33. $menus=DB::table('sys_menu')->get();
  34.  
  35. $sysMenu = new SysMenu();
  36. $menusTree = $sysMenu->getTreeMenu($menus, $p_id = 0, $level = 0);
  37. // dd($menus, $menusTree);
  38.  
  39. return view('role.create')
  40. ->with('menusTree', $menusTree)
  41. ;
  42. }
  43.  
  44. # 入库数据
  45. elseif ($request->isMethod('post')) {
  46. $roles = $request->input('roles');
  47. $input = $request->except('_token', 'roles');
  48. $input['create_time'] = date('Y-m-d H:i:s');
  49.  
  50. $role_ids = DB::table('sys_role')->insertGetId($input);
  51. $role_menu = [];
  52. foreach($roles as $k=>$role) {
  53. $role_menu[$k]['role_ids'] = $role_ids;
  54. $role_menu[$k]['menu_id'] = $role;
  55. }
  56. // dd($roles, $input, $role_menu);
  57. # 同步role_ids对应的menu_id到sys_role_menu
  58. if ($role_ids) {
  59. $res = DB::table('sys_role_menu')->insert($role_menu);
  60. if ($res) {
  61. # 重定向到index
  62. return redirect('role/index');
  63. }
  64. }
  65.  
  66. }
  67. }
  68.  
  69. public function edit(Request $request)
  70. {
  71. $ids = $request->input('ids');
  72. $role = DB::table('sys_role')->where('ids', $ids)->get();
  73. var_dump($ids, $role);
  74. ## 获取菜单列表
  75. $menus=DB::table('sys_menu')->get();
  76.  
  77. $sysMenu = new SysMenu();
  78. $menusTree = $sysMenu->getTreeMenu($menus, $p_id = 0, $level = 0);
  79. $menus=DB::table('sys_role_menu')->where('role_ids', $ids)->pluck('menu_id');
  80.  
  81. return view('role.edit')
  82. ->with('role', $role[0])
  83. ->with('menus', $menus)
  84. ->with('menusTree', $menusTree)
  85. ;
  86. }
  87.  
  88. public function update(Request $request)
  89. {
  90. # 更新数据
  91. $ids = $request->input('ids');
  92. $roles = $request->input('roles');
  93. $input = $request->except('_token', 'roles', 'ids');
  94. $input['create_time'] = date('Y-m-d H:i:s');
  95. // dd($ids,$roles,$input);
  96. $reslut = DB::table('sys_role')->where('ids', $ids)->update($input);
  97.  
  98. if ($reslut) {
  99. $res = DB::table('sys_role_menu')->where('role_ids', $ids)->delete();
  100. if ($res) {
  101. $role_menu = [];
  102. foreach($roles as $k=>$role) {
  103. $role_menu[$k]['role_ids'] = $ids;
  104. $role_menu[$k]['menu_id'] = $role;
  105. }
  106. $resu = DB::table('sys_role_menu')->insert($role_menu);
  107. if ($resu) {
  108. # 重定向到index
  109. return redirect('role/index');
  110. }
  111. }
  112. }
  113.  
  114. }
  115.  
  116. public function delete(Request $request)
  117. {
  118. $ids = $request->input('selected');
  119. if (!empty($ids)) {
  120. $res = DB::table('sys_role')->whereIn('ids', $ids)->delete();
  121. }
  122.  
  123. # 重定向到index
  124. return redirect('role/index');
  125. }
  126. }

index.blade.php

  1. @extends('layouts.layout')
  2. @section('content')
  3. <div id="content">
  4. <div class="page-header">
  5. <div class="container-fluid">
  6. <div class="pull-right">
  7. <a href="/role/create" data-toggle="tooltip" title="新增" class="btn btn-primary">新增
  8. </a>
  9. <button type="button" data-toggle="tooltip" title="删除" class="btn btn-danger"
  10. onclick="confirm('确认?') ? $('#form-index').submit() : false;">
  11. 删除
  12. </button>
  13. </div>
  14. <h3 class="htitle">角色管理</h3>
  15. </div>
  16. </div>
  17. <div class="container-fluid">
  18. <div class="panel panel-default">
  19. <div class="panel-heading">
  20. <h3 class="panel-title">
  21. <i class="fa fa-list"></i>
  22. 角色列表
  23. </h3>
  24. </div>
  25. <div class="panel-body">
  26.  
  27. <form action="/role/delete" method="post" id="form-index">
  28. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  29. <div class="table-responsive">
  30. <table class="table table-bordered table-hover">
  31. <thead>
  32. <tr>
  33. <td style="width: 1px;" class="text-center">
  34. <input type="checkbox" id="select-all" title="全选"/>
  35. </td>
  36. <th class="text-left">角色名称</th>
  37. <th class="text-left">角色说明</th>
  38. <th class="text-left">角色创建时间</th>
  39. <th class="text-right">管理</th>
  40. </tr>
  41. </thead>
  42. <tbody>
  43. @foreach ($roles as $role)
  44. <tr>
  45. <td class="text-center">
  46. <input type="checkbox" name="selected[]" value="{{$role->ids}}"/>
  47. </td>
  48.  
  49. <td class="text-left">{{$role->name}}</td>
  50. <td class="text-left">{{$role->remarks}}</td>
  51. <td class="text-left">{{$role->create_time}}</td>
  52.  
  53. <td class="text-right">
  54. <a href="/role/edit?ids={{$role->ids}}" data-toggle="tooltip" title="编辑"
  55. class="btn btn-primary">编辑
  56. </a>
  57. </td>
  58. </tr>
  59. @endforeach
  60. </tbody>
  61. </table>
  62. </div>
  63. </form>
  64. <div class="pagers ">
  65. {{$roles->render()}}
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. <script>
  72. $(function() {
  73. $('#select-all').click(function() {
  74. // 找到需要操作的记录的checkbox,控制状态, 为当前全选checkbox的checked状态
  75. // :checkbox == input[type=checkbox]
  76. $(':checkbox[name="selected[]"]').prop('checked', $(this).prop('checked'));
  77. });
  78. });
  79. </script>
  80. @endsection

create.blade.php

  1. @extends('layouts.layout')
  2. @section('content')
  3. <div class="pull-left right_content " style="margin-left: 20px;margin-top: 20px;padding: 0;">
  4. <style>
  5. .tree {
  6. min-height:20px;
  7. padding:19px;
  8. margin-bottom:20px;
  9. background-color:#fbfbfb;
  10. border:1px solid #999;
  11. -webkit-border-radius:4px;
  12. -moz-border-radius:4px;
  13. border-radius:4px;
  14. -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);
  15. -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);
  16. box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05)
  17. }
  18. .tree li {
  19. list-style-type:none;
  20. margin:0;
  21. padding:10px 5px 0 5px;
  22. position:relative
  23. }
  24. .tree li::before, .tree li::after {
  25. content:'';
  26. left:-20px;
  27. position:absolute;
  28. right:auto
  29. }
  30. .tree li::before {
  31. border-left:1px solid #999;
  32. bottom:50px;
  33. height:100%;
  34. top:0;
  35. width:1px
  36. }
  37. .tree li::after {
  38. border-top:1px solid #999;
  39. height:20px;
  40. top:25px;
  41. width:25px
  42. }
  43. .tree li span {
  44. -moz-border-radius:5px;
  45. -webkit-border-radius:5px;
  46. border:1px solid #999;
  47. border-radius:5px;
  48. display:inline-block;
  49. padding:3px 8px;
  50. text-decoration:none
  51. }
  52. .tree li.parent_li>span {
  53. cursor:pointer
  54. }
  55. .tree>ul>li::before, .tree>ul>li::after {
  56. border:0
  57. }
  58. .tree li:last-child::before {
  59. height:30px
  60. }
  61. .tree li.parent_li>span:hover, .tree li.parent_li>span:hover+ul li span {
  62. background:#eee;
  63. border:1px solid #94a0b4;
  64. color:#
  65. }
  66. </style>
  67. <form id="form-set" action="/role/create" method="post">
  68. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  69.  
  70. <div class="tree well">
  71. <lable>角色名称:</lable>
  72. <input type='text' required="required" name='name' value="">
  73. <lable>角色说明:</lable>
  74. <input type='text' name='remarks' required="required" value="">
  75. {{--<input type="submit" value="保存">--}}
  76. <button type="submit" form="form-set" data-toggle="tooltip" title="保存" class="btn btn-primary">保存
  77. <i class="fa fa-save"></i>
  78. </button>
  79. <a href="/role/index" data-toggle="tooltip" title="取消" class="btn btn-default">取消
  80. <i class="fa fa-reply"></i>
  81. </a>
  82. <ul>
  83. <li>
  84. <b>+</b><span><i class="icon-folder-open"></i>全部<input id="all" type="checkbox"></span>
  85. <ul class="all">
  86. @foreach($menusTree as $menu)
  87. @if($menu->level == 0)
  88. <li><b>+</b><span><i class="icon-folder-open"></i>{{$menu->name}}<input type="checkbox" name="roles[]" value="{{$menu->id}}"></span></li>
  89. @endif
  90. @if($menu->level == 1)
  91. <ul>
  92. <li><span><i class="icon-minus-sign"></i>{{$menu->name}}<input type="checkbox" name="roles[]" value="{{$menu->id}}"></span></li>
  93. </ul>
  94. @endif
  95. @if($menu->level == 2)
  96. <ul>
  97. <ul>
  98. <li>
  99. <span><i class="icon-minus-sign"></i>{{$menu->name}}<input type="checkbox" name="roles[]" value="{{$menu->id}}"></span>
  100. </li>
  101. </ul>
  102. </ul>
  103. @endif
  104. @endforeach
  105. </ul>
  106. </li>
  107. </ul>
  108. </div>
  109.  
  110. </form>
  111. <script>
  112. $(function(){
  113. $('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch');
  114. $('.tree li.parent_li > b').on('click', function (e) {
  115. var children = $(this).parent('li.parent_li').find(' > ul > li');
  116. if (children.is(":visible")) {
  117. children.hide('fast');
  118. $(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign');
  119. } else {
  120. children.show('fast');
  121. $(this).attr('title', 'Collapse this branch').find(' > i').addClass('icon-minus-sign').removeClass('icon-plus-sign');
  122. }
  123. e.stopPropagation();
  124. });
  125. $('input[type="checkbox"]').click(function(){
  126.  
  127. var t = $(this).is(':checked');
  128. if ( t == true ){
  129. $(this).parent().parent().parent().parent().find('input').first().parent().parent().parent().parent().find('input').first().prop('checked',true);
  130. $(this).parent().parent().parent().parent().find('input').first().prop('checked',true);
  131. $(this).parent().parent().find('ul').find('input').prop('checked',true);
  132. $(this).next('ul').find('input').prop('checked',true);
  133. }
  134. else {
  135. $('#all').prop('checked',false);
  136. $(this).parent().parent().find('ul').find('input').prop('checked',false);
  137. /*if($(this).parent().parent().parent().find("input:checked").length<1){
  138. $(this).parent().parent().parent().parent().find('input').first().prop('checked',false);
  139. }*/
  140. }
  141. if($('.all').find("input").length==$('.all').find("input:checked").length){
  142. $('#all').prop('checked',true);
  143. }else{
  144. $('#all').prop('checked',false);
  145. }
  146. });
  147. })
  148.  
  149. </script>
  150. </div>
  151. @endsection

edite.blade.php

  1. @extends('layouts.layout')
  2. @section('content')
  3. <div class="pull-left right_content " style="margin-left: 20px;margin-top: 20px;padding: 0;">
  4. <style>
  5. .tree {
  6. min-height:20px;
  7. padding:19px;
  8. margin-bottom:20px;
  9. background-color:#fbfbfb;
  10. border:1px solid #999;
  11. -webkit-border-radius:4px;
  12. -moz-border-radius:4px;
  13. border-radius:4px;
  14. -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);
  15. -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);
  16. box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05)
  17. }
  18. .tree li {
  19. list-style-type:none;
  20. margin:0;
  21. padding:10px 5px 0 5px;
  22. position:relative
  23. }
  24. .tree li::before, .tree li::after {
  25. content:'';
  26. left:-20px;
  27. position:absolute;
  28. right:auto
  29. }
  30. .tree li::before {
  31. border-left:1px solid #999;
  32. bottom:50px;
  33. height:100%;
  34. top:0;
  35. width:1px
  36. }
  37. .tree li::after {
  38. border-top:1px solid #999;
  39. height:20px;
  40. top:25px;
  41. width:25px
  42. }
  43. .tree li span {
  44. -moz-border-radius:5px;
  45. -webkit-border-radius:5px;
  46. border:1px solid #999;
  47. border-radius:5px;
  48. display:inline-block;
  49. padding:3px 8px;
  50. text-decoration:none
  51. }
  52. .tree li.parent_li>span {
  53. cursor:pointer
  54. }
  55. .tree>ul>li::before, .tree>ul>li::after {
  56. border:0
  57. }
  58. .tree li:last-child::before {
  59. height:30px
  60. }
  61. .tree li.parent_li>span:hover, .tree li.parent_li>span:hover+ul li span {
  62. background:#eee;
  63. border:1px solid #94a0b4;
  64. color:#
  65. }
  66. </style>
  67. <form id="form-set" action="/role/update?ids={{$role->ids}}" method="post">
  68. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  69.  
  70. <div class="tree well">
  71. <lable>角色名称:</lable>
  72. <input type='text' required="required" name='name' value="{{$role->name}}">
  73. <lable>角色说明:</lable>
  74. <input type='text' name='remarks' required="required" value="{{$role->remarks}}">
  75. {{--<input type="submit" value="保存">--}}
  76. <button type="submit" form="form-set" data-toggle="tooltip" title="保存" class="btn btn-primary">保存
  77. <i class="fa fa-save"></i>
  78. </button>
  79. <a href="/role/index" data-toggle="tooltip" title="取消" class="btn btn-default">取消
  80. <i class="fa fa-reply"></i>
  81. </a>
  82. <ul>
  83. <li>
  84. <b>+</b><span><i class="icon-folder-open"></i>全部<input id="all" type="checkbox"></span>
  85. <ul class="all">
  86. @foreach($menusTree as $menu)
  87. @if($menu->level == 0)
  88. <li><b>+</b><span><i class="icon-folder-open"></i>{{$menu->name}}<input type="checkbox" name="roles[]" value="{{$menu->id}}"
  89. @foreach($menus as $menuone)
  90. @if($menu->id == $menuone)
  91. checked="checked"
  92. @endif
  93. @endforeach
  94. ></span></li>
  95. @endif
  96. @if($menu->level == 1)
  97. <ul>
  98. <li><span><i class="icon-minus-sign"></i>{{$menu->name}}<input type="checkbox" name="roles[]" value="{{$menu->id}}"
  99. @foreach($menus as $menuone)
  100. @if($menu->id == $menuone)
  101. checked="checked"
  102. @endif
  103. @endforeach
  104. ></span></li>
  105. </ul>
  106. @endif
  107. @if($menu->level == 2)
  108. <ul>
  109. <ul>
  110. <li>
  111. <span><i class="icon-minus-sign"></i>{{$menu->name}}<input type="checkbox" name="roles[]" value="{{$menu->id}}"
  112. @foreach($menus as $menuone)
  113. @if($menu->id == $menuone)
  114. checked="checked"
  115. @endif
  116. @endforeach
  117.  
  118. ></span>
  119. </li>
  120. </ul>
  121. </ul>
  122. @endif
  123. @endforeach
  124. </ul>
  125. </li>
  126. </ul>
  127. </div>
  128.  
  129. </form>
  130. <script>
  131. $(function(){
  132. $('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch');
  133. $('.tree li.parent_li > b').on('click', function (e) {
  134. var children = $(this).parent('li.parent_li').find(' > ul > li');
  135. if (children.is(":visible")) {
  136. children.hide('fast');
  137. $(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign');
  138. } else {
  139. children.show('fast');
  140. $(this).attr('title', 'Collapse this branch').find(' > i').addClass('icon-minus-sign').removeClass('icon-plus-sign');
  141. }
  142. e.stopPropagation();
  143. });
  144. $('input[type="checkbox"]').click(function(){
  145.  
  146. var t = $(this).is(':checked');
  147. if ( t == true ){
  148. $(this).parent().parent().parent().parent().find('input').first().parent().parent().parent().parent().find('input').first().prop('checked',true);
  149. $(this).parent().parent().parent().parent().find('input').first().prop('checked',true);
  150. $(this).parent().parent().find('ul').find('input').prop('checked',true);
  151. $(this).next('ul').find('input').prop('checked',true);
  152. }
  153. else {
  154. $('#all').prop('checked',false);
  155. $(this).parent().parent().find('ul').find('input').prop('checked',false);
  156. /*if($(this).parent().parent().parent().find("input:checked").length<1){
  157. $(this).parent().parent().parent().parent().find('input').first().prop('checked',false);
  158. }*/
  159. }
  160. if($('.all').find("input").length==$('.all').find("input:checked").length){
  161. $('#all').prop('checked',true);
  162. }else{
  163. $('#all').prop('checked',false);
  164. }
  165. });
  166. })
  167.  
  168. </script>
  169. </div>
  170. @endsection

menu.php

  1. <?php
  2. /**
  3. * 菜单管理
  4. * Date: 2018/4/12
  5. * Time: 17:00
  6. */
  7.  
  8. namespace iqiyi\Http\Controllers;
  9.  
  10. use Illuminate\Http\Request;
  11. use Illuminate\Support\Facades\DB;
  12. use iqiyi\Models\SysMenu;
  13. use Illuminate\Pagination\LengthAwarePaginator;
  14. use Illuminate\Pagination\Paginator;
  15.  
  16. class Menu extends Controller
  17. {
  18. /*菜单列表索引页*/
  19. public function index(Request $request)
  20. {
  21. ## 获取数据
  22. $menus=DB::table('sys_menu')->get();
  23. // $menusPage=DB::table('sys_menu')->paginate(10);
  24.  
  25. $sysMenu = new SysMenu();
  26. $menusTree = $sysMenu->getTreeMenu($menus, $p_id = 0, $level = 0);
  27.  
  28. $perPage = 10;
  29. if ($request->has('page')) {
  30. $current_page = $request->input('page');
  31. $current_page = $current_page <= 0 ? 1 :$current_page;
  32. } else {
  33. $current_page = 1;
  34. }
  35.  
  36. $item = array_slice($menusTree, ($current_page-1)*$perPage, $perPage); //注释1
  37. $total = count($menusTree);
  38.  
  39. $paginator =new LengthAwarePaginator($item, $total, $perPage, $current_page, [
  40. 'path' => Paginator::resolveCurrentPath(), //注释2
  41. 'pageName' => 'page',
  42. ]);
  43.  
  44. $menuslist = $paginator->toArray()['data'];
  45.  
  46. return view('menu.index', compact('menuslist', 'paginator'));
  47.  
  48. }
  49. public function create(Request $request)
  50. {
  51. # 展示表单
  52. if ($request->isMethod('get')) {
  53. $first_menus = DB::table('sys_menu')->where('parent_id', 0)->get();
  54.  
  55. return view('menu.create')
  56. ->with('first_menus', $first_menus)
  57. ;
  58. }
  59.  
  60. # 入库数据
  61. elseif ($request->isMethod('post')) {
  62. $input = $request->except('_token');
  63. // dd($input);
  64. $res = DB::table('sys_menu')->insert($input);
  65.  
  66. # 重定向到index
  67. return redirect('menu/index');
  68. }
  69. }
  70.  
  71. public function edit(Request $request)
  72. {
  73. $id = $request->input('id');
  74. $menu = DB::table('sys_menu')->where('id', $id)->get();
  75. $parent_id = $menu[0]->parent_id;
  76. // echo $parent_id;
  77.  
  78. $first_menus = DB::table('sys_menu')->where('parent_id', 0)->get();
  79. $parent_menus = DB::table('sys_menu')->where('id', $parent_id)->get();
  80. // dd($menu);
  81.  
  82. // $role_ids = DB::table('sys_menu_role')->where('menu_ids', $ids)->pluck('role_ids');
  83. // $roles = DB::table('sys_role')->get();
  84. // $role_id = DB::table('sys_role')->where('ids', $role_ids['0'])->pluck('ids');
  85.  
  86. return view('menu.edit')
  87. ->with('menu', $menu[0])
  88. ->with('first_menus', $first_menus)
  89. ->with('parent_menus', $parent_menus[0])
  90. ;
  91.  
  92. }
  93.  
  94. public function update(Request $request)
  95. {
  96. # 更新数据
  97. $input = $request->except('_token');
  98. $id = $input['id'];
  99. // dd($input, $id);
  100. $res = DB::table('sys_menu')->where('id', $id)->update($input);
  101.  
  102. # 重定向到index
  103. return redirect('menu/index');
  104.  
  105. }
  106.  
  107. public function delete(Request $request)
  108. {
  109. $id = $request->input('selected');
  110. // dd($ids);
  111. if (!empty($id)) {
  112. $res = DB::table('sys_menu')->whereIn('id', $id)->delete();
  113. }
  114.  
  115. # 重定向到index
  116. return redirect('menu/index');
  117. }
  118. }

index.blade.php

  1. @extends('layouts.layout')
  2. @section('content')
  3. <div id="content">
  4. <div class="page-header">
  5. <div class="container-fluid">
  6. <div class="pull-right">
  7. <a href="/menu/create" data-toggle="tooltip" title="新增" class="btn btn-primary">新增
  8. </a>
  9. <button type="button" data-toggle="tooltip" title="删除" class="btn btn-danger"
  10. onclick="confirm('确认?') ? $('#form-index').submit() : false;">
  11. 删除
  12. </button>
  13. </div>
  14. <h3 class="htitle">菜单管理</h3>
  15. </div>
  16. </div>
  17. <div class="container-fluid">
  18. <div class="panel panel-default">
  19. <div class="panel-heading">
  20. <h3 class="panel-title">
  21. <i class="fa fa-list"></i>
  22. 菜单列表
  23. </h3>
  24. </div>
  25. <div class="panel-body">
  26.  
  27. <form action="/menu/delete" method="post" id="form-index">
  28. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  29. <div class="table-responsive">
  30. <table class="table table-bordered table-hover">
  31. <thead>
  32. <tr>
  33. <td style="width: 1px;" class="text-center">
  34. <input type="checkbox" id="select-all" title="全选"/>
  35. </td>
  36. <th class="text-left">功能菜单名称</th>
  37. <th class="text-left">功能菜单路径</th>
  38. <th class="text-left">功能菜单路由</th>
  39. <th class="text-left">功能菜单描述</th>
  40. <th class="text-right">管理</th>
  41. </tr>
  42. </thead>
  43. <tbody>
  44. @foreach ($menuslist as $menu)
  45. <tr>
  46. <td class="text-center">
  47. <input type="checkbox" name="selected[]" value="{{$menu->id}}"/>
  48. </td>
  49. <td class="text-left">
  50. @if($menu->level == 1)
  51. &nbsp;&nbsp;&nbsp;&nbsp;
  52. @elseif($menu->level == 2)
  53. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  54. @elseif($menu->level == 3)
  55. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  56. @endif
  57. {{$menu->name}}</td>
  58. <td class="text-left">{{$menu->name_path}}</td>
  59. <td class="text-left">{{$menu->href}}</td>
  60. <td class="text-left">{{$menu->remarks}}</td>
  61.  
  62. <td class="text-right">
  63. <a href="/menu/edit?id={{$menu->id}}" data-toggle="tooltip" title="编辑"
  64. class="btn btn-primary">编辑
  65. </a>
  66. </td>
  67. </tr>
  68. @endforeach
  69. </tbody>
  70. </table>
  71. </div>
  72. </form>
  73. <div class="pagers ">
  74. {!! $paginator->render() !!}
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. <script>
  81. $(function() {
  82. $('#select-all').click(function() {
  83. // 找到需要操作的记录的checkbox,控制状态, 为当前全选checkbox的checked状态
  84. // :checkbox == input[type=checkbox]
  85. $(':checkbox[name="selected[]"]').prop('checked', $(this).prop('checked'));
  86. });
  87. });
  88. </script>
  89. @endsection

create.blade.php

  1. @extends('layouts.layout')
  2. @section('content')
  3. <div id="content">
  4. <div class="page-header">
  5. <div class="container-fluid">
  6. <div class="pull-right">
  7. <button type="submit" form="form-set" data-toggle="tooltip" title="保存" class="btn btn-primary">保存
  8. <i class="fa fa-save"></i>
  9. </button>
  10. <a href="/menu/index" data-toggle="tooltip" title="取消" class="btn btn-default">取消
  11. <i class="fa fa-reply"></i>
  12. </a>
  13. </div>
  14. </div>
  15. </div>
  16. <div class="container-fluid">
  17. <div class="panel panel-default">
  18. <div class="panel-heading">
  19. <h3 class="panel-title">
  20. <i class="fa fa-pencil"></i>
  21. 添加菜单
  22. </h3>
  23. </div>
  24. <div class="panel-body">
  25. <form action="/menu/create" method="post" enctype="multipart/form-data" id="form-set"
  26. class="form-horizontal">
  27. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  28. <div class="tab-content">
  29. <div class="tab-pane active" id="tab-general">
  30.  
  31. <div class="form-group ">
  32. <label class="col-sm-2 control-label" for="input-name">功能菜单名称</label>
  33. <div class="col-sm-10">
  34. <input type="text" required="required" name="name" value="{{$menu->name or ''}}" placeholder="功能菜单名称" id="input-name" class="form-control"/>
  35. </div>
  36. </div>
  37. <div class="form-group ">
  38. <label class="col-sm-2 control-label" for="input-name_path">功能菜单路径</label>
  39. <div class="col-sm-10">
  40. <input type="text" required="required" name="name_path" value="{{$menu->name_path or ''}}" placeholder="功能菜单路径" id="input-name_path" class="form-control"/>
  41. </div>
  42. </div>
  43. <div class="form-group ">
  44. <label class="col-sm-2 control-label" for="input-remarks">功能菜单描述</label>
  45. <div class="col-sm-10">
  46. <input type="text" required="required" name="remarks" value="{{$menu->remarks or ''}}" placeholder="功能菜单描述" id="input-remarks" class="form-control"/>
  47. </div>
  48. </div>
  49. <div class="form-group ">
  50. <label class="col-sm-2 control-label" for="input-href">功能菜单路由</label>
  51. <div class="col-sm-10">
  52. <input type="text" required="required" name="href" value="{{$menu->href or ''}}" placeholder="功能菜单路由" id="input-href" class="form-control"/>
  53. </div>
  54. </div>
  55. <div class="form-group ">
  56. <label class="col-sm-2 control-label" for="input-parent_id">父级菜单</label>
  57. <div class="col-sm-10">
  58. <select class="form-control" name="parent_id">
  59. <option value = 0>无</option>
  60. @foreach($first_menus as $first_menu)
  61. <option value ="{{$first_menu->id}}">{{$first_menu->name}}</option>
  62. @endforeach
  63. </select>
  64. </div>
  65. </div>
  66. <div class="form-group ">
  67. <label class="col-sm-2 control-label" for="input-is_show">是否在菜单中显示</label>
  68. <div class="col-sm-10">
  69. <select class="form-control" name="is_show">
  70. <option value =1>显示</option>
  71. <option value =0>不显示</option>
  72. </select>
  73. </div>
  74. </div>
  75. </div>
  76.  
  77. </div>
  78. </form>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83.  
  84. @endsection

edite.blade.php

  1. @extends('layouts.layout')
  2. @section('content')
  3. <div id="content">
  4. <div class="page-header">
  5. <div class="container-fluid">
  6. <div class="pull-right">
  7. <button type="submit" form="form-set" data-toggle="tooltip" title="保存" class="btn btn-primary">保存
  8. <i class="fa fa-save"></i>
  9. </button>
  10. <a href="/menu/index" data-toggle="tooltip" title="取消" class="btn btn-default">取消
  11. <i class="fa fa-reply"></i>
  12. </a>
  13. </div>
  14. </div>
  15. </div>
  16. <div class="container-fluid">
  17. <div class="panel panel-default">
  18. <div class="panel-heading">
  19. <h3 class="panel-title">
  20. <i class="fa fa-pencil"></i>
  21. 编辑菜单
  22. </h3>
  23. </div>
  24. <div class="panel-body">
  25. <form action="/menu/update?id={{$menu->id}}" method="post" enctype="multipart/form-data" id="form-set"
  26. class="form-horizontal">
  27. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  28. <div class="tab-content">
  29. <div class="tab-pane active" id="tab-general">
  30.  
  31. <div class="form-group ">
  32. <label class="col-sm-2 control-label" for="input-name">功能菜单名称</label>
  33. <div class="col-sm-10">
  34. <input type="text" required="required" name="name" value="{{$menu->name or ''}}" placeholder="功能菜单名称" id="input-name" class="form-control"/>
  35. </div>
  36. </div>
  37. <div class="form-group ">
  38. <label class="col-sm-2 control-label" for="input-name_path">功能菜单路径</label>
  39. <div class="col-sm-10">
  40. <input type="text" required="required" name="name_path" value="{{$menu->name_path or ''}}" placeholder="功能菜单路径" id="input-name_path" class="form-control"/>
  41. </div>
  42. </div>
  43. <div class="form-group ">
  44. <label class="col-sm-2 control-label" for="input-remarks">功能菜单描述</label>
  45. <div class="col-sm-10">
  46. <input type="text" required="required" name="remarks" value="{{$menu->remarks or ''}}" placeholder="功能菜单描述" id="input-remarks" class="form-control"/>
  47. </div>
  48. </div>
  49. <div class="form-group ">
  50. <label class="col-sm-2 control-label" for="input-href">功能菜单路由</label>
  51. <div class="col-sm-10">
  52. <input type="text" required="required" name="href" value="{{$menu->href or ''}}" placeholder="功能菜单路由" id="input-href" class="form-control"/>
  53. </div>
  54. </div>
  55. <div class="form-group ">
  56. <label class="col-sm-2 control-label" for="input-parent_id">父级菜单</label>
  57. <div class="col-sm-10">
  58. <select class="form-control" name="parent_id">
  59. <option value = 0>无</option>
  60. @foreach($first_menus as $first_menu)
  61. <option value ="{{$first_menu->id}}"
  62. @if($first_menu->id == $parent_menus->id)
  63. selected="selected"
  64. @endif
  65. >{{$first_menu->name}}</option>
  66. @endforeach
  67. </select>
  68. </div>
  69. </div>
  70. <div class="form-group ">
  71. <label class="col-sm-2 control-label" for="input-is_show">是否在菜单中显示</label>
  72. <div class="col-sm-10">
  73. <select class="form-control" name="is_show">
  74. <option value = 1
  75. @if($menu->is_show == 1)
  76. selected="selected"
  77. @endif
  78. >显示</option>
  79. <option value = 0
  80. @if($menu->is_show == 0)
  81. selected="selected"
  82. @endif
  83. >不显示</option>
  84.  
  85. </option>
  86. </select>
  87. </div>
  88. </div>
  89. </div>
  90.  
  91. </div>
  92. </form>
  93. </div>
  94. </div>
  95. </div>
  96. </div>
  97. @endsection
  1. <?php
    /**
    * 菜单管理
    * Date: 2018/4/12
    * Time: 17:00
    */
  2.  
  3. namespace iqiyi\Http\Controllers;
  4.  
  5. use Illuminate\Http\Request;
    use Illuminate\Support\Facades\DB;
    use iqiyi\Models\SysMenu;
    use Illuminate\Pagination\LengthAwarePaginator;
    use Illuminate\Pagination\Paginator;
  6.  
  7. class Menu extends Controller
    {
    /*菜单列表索引页*/
    public function index(Request $request)
    {
    ## 获取数据
    $menus=DB::table('sys_menu')->get();
    // $menusPage=DB::table('sys_menu')->paginate(10);
  8.  
  9. $sysMenu = new SysMenu();
    $menusTree = $sysMenu->getTreeMenu($menus, $p_id = , $level = );
  10.  
  11. $perPage = ;
    if ($request->has('page')) {
    $current_page = $request->input('page');
    $current_page = $current_page <= 0 ? 1 :$current_page;
    } else {
    $current_page = ;
    }
  12.  
  13. $item = array_slice($menusTree, ($current_page-)*$perPage, $perPage); //注释1
    $total = count($menusTree);
  14.  
  15. $paginator =new LengthAwarePaginator($item, $total, $perPage, $current_page, [
    'path' => Paginator::resolveCurrentPath(), //注释2
    'pageName' => 'page',
    ]);
  16.  
  17. $menuslist = $paginator->toArray()['data'];
  18.  
  19. return view('menu.index', compact('menuslist', 'paginator'));
  20.  
  21. }
    public function create(Request $request)
    {
    # 展示表单
    if ($request->isMethod('get')) {
    $first_menus = DB::table('sys_menu')->where('parent_id', )->get();
  22.  
  23. return view('menu.create')
    ->with('first_menus', $first_menus)
    ;
    }
  24.  
  25. # 入库数据
    elseif ($request->isMethod('post')) {
    $input = $request->except('_token');
    // dd($input);
    $res = DB::table('sys_menu')->insert($input);
  26.  
  27. # 重定向到index
    return redirect('menu/index');
    }
    }
  28.  
  29. public function edit(Request $request)
    {
    $id = $request->input('id');
    $menu = DB::table('sys_menu')->where('id', $id)->get();
    $parent_id = $menu[]->parent_id;
    // echo $parent_id;
  30.  
  31. $first_menus = DB::table('sys_menu')->where('parent_id', )->get();
    $parent_menus = DB::table('sys_menu')->where('id', $parent_id)->get();
    // dd($menu);
  32.  
  33. // $role_ids = DB::table('sys_menu_role')->where('menu_ids', $ids)->pluck('role_ids');
    // $roles = DB::table('sys_role')->get();
    // $role_id = DB::table('sys_role')->where('ids', $role_ids['0'])->pluck('ids');
  34.  
  35. return view('menu.edit')
    ->with('menu', $menu[])
    ->with('first_menus', $first_menus)
    ->with('parent_menus', $parent_menus[])
    ;
  36.  
  37. }
  38.  
  39. public function update(Request $request)
    {
    # 更新数据
    $input = $request->except('_token');
    $id = $input['id'];
    // dd($input, $id);
    $res = DB::table('sys_menu')->where('id', $id)->update($input);
  40.  
  41. # 重定向到index
    return redirect('menu/index');
  42.  
  43. }
  44.  
  45. public function delete(Request $request)
    {
    $id = $request->input('selected');
    // dd($ids);
    if (!empty($id)) {
    $res = DB::table('sys_menu')->whereIn('id', $id)->delete();
    }
  46.  
  47. # 重定向到index
    return redirect('menu/index');
    }
    }

laravel rbac的用户 角色 权限的crud的更多相关文章

  1. [转]扩展RBAC用户角色权限设计方案

    原文地址:http://www.iteye.com/topic/930648 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地 ...

  2. 扩展RBAC用户角色权限设计方案

    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...

  3. RBAC用户角色权限设计方案

    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用 户-角色 ...

  4. 扩展RBAC用户角色权限设计方案(转载)

    扩展RBAC用户角色权限设计方案  来源:https://www.cnblogs.com/zwq194/archive/2011/03/07/1974821.html https://blog.csd ...

  5. RBAC用户角色权限设计方案【转载】

    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...

  6. 扩展RBAC用户角色权限设计方案<转>

    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...

  7. [.Net MVC] 用户角色权限管理_使用CLK.AspNet.Identity

    项目:后台管理平台 意义:一个完整的管理平台需要提供用户注册.登录等功能,以及认证和授权功能. 一.为何使用CLK.AspNet.Identity 首先简要说明所采取的权限控制方式.这里采用了基于角色 ...

  8. spring-boot-plus V1.4.0发布 集成用户角色权限部门管理

    RBAC用户角色权限 用户角色权限部门管理核心接口介绍 Shiro权限配置

  9. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

    这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是想通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...

随机推荐

  1. mybatis中分页插件PageHelper的使用

    转载博客:http://blog.csdn.net/u012728960/article/details/50791343

  2. 北京一家JAVA开发公司面试题(留给后人)

    1.jsp有哪些内置对象?作用分别是什么? 2.描述一下servlet的生命周期和基本架构. 3.多线程有几种实现方法,都是什么? 同步有几种实现方法,都是什么? 4.作用域public   priv ...

  3. Google搜索排名优化-面向搜索引擎的网站设计

    内容摘要:网站在搜索营销方面最主要的缺点: 行业知识:不知道搜索引擎对吸引的新用户的重要性,在搜索引擎排名服务中追求“傻瓜相关”,购买一些其实没有太多实际意义的行业关键词.其实能够用户输入的关键词越多 ...

  4. ADT Android开发环境搭建小记

    1.之前因为产品方向原因,Android开发暂时搁浅,最近重新启动,SDK Manager.exe不能启动的话用启动\sdk\tools\adroid.bat即可启动SDK Manager.exe 2 ...

  5. Android hybrid App项目构建和部分基本开发问题

    1.首先是选型:Cordova+Ionic Framework,调试测试环境是Ripple Emulator.开发环境其实可以随便选,我个人选择了Eclipse,当然Android SDK+ADT也是 ...

  6. cbp2make使用

    codeblock中的cbp2make插件能自动生成makefile文件,这里介绍一下从安装到使用到的过程. 首先下载cbp2make,下载的包后缀名是.tar.gz.Linux里双击该下载文件,解压 ...

  7. JSF基础

    JSF基础 1)JSF(JavaServer Faces)一种基于Java的Web应用的用户界面软件框架. 旨在降低web应用开发难度.减轻开发人员编写和维护web应用的负担. 一个基于JSF框架构建 ...

  8. C#文件和字节流的转换方法

    1.读取文件,并转换为字节流 FileStream fs = new FileStream(filename,FileMode.Open,FileAccess.Read); byte[] infbyt ...

  9. kaggle入门项目:Titanic存亡预测(二)数据处理

    原kaggle比赛地址:https://www.kaggle.com/c/titanic 原kernel地址:A Data Science Framework: To Achieve 99% Accu ...

  10. 物流的纯css实现方法

    首先我们来看看UI给出的设计图. 为什么到达是最前面,为什么物流顺序是倒叙的,这是什么用户习惯,这是我拿到设计稿的问题,但是这里不谈设计,因为审美这个东西无法评估.那么这里我就做一个顺序的来对比一下吧 ...