laravel-cms人员管理设置角色

我们之前写完了人员管理和角色管理的增删改查,现在,让我们把人员管理和角色相关联起来。

更改AdminCreateRequest.php

我们更改此文件添加时添加对于角色的验证,更改后如下:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Validation\ValidationException;
use Symfony\Component\HttpFoundation\Response;

class AdminCreateRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            //
            'username'=>'bail|required',
            'password'=>'bail|required|min:10|max:30',
            'role'=>'bail|required'
        ];
    }
    public function messages(){
        return [
            'username.required'=>':attribute 不能为空',
            'password.required'=>':attribute 不能为空',
            'password.min'=>':attribute 最小为10位长度',
            'password.max'=>':attribute 最大为30位长度',
            'role.required'=>':attribute 不能为空'
        ];
    }
    public function attributes(){
        return [
            'usernmae'=>'用户名',
            'password'=>'密码',
            'role'=>'用户角色'
        ];
    }
    protected function failedValidation(Validator $validator)
    {
        // 此处自定义表单验证错误信息
        $data = [
            'code' => 1000,
            'msg' => $validator->errors(),
        ];
        $respone = new Response(json_encode($data));
        throw (new ValidationException($validator, $respone))
            ->errorBag($this->errorBag)
            ->redirectTo($this->getRedirectUrl());
    }
}

更改admin.blade.php

更改admin.blade.php添加角色选择框

@extends('admin.common')
@section('content')

      
          @foreach ($admins as $k=>$v)
          
          @endforeach
        
ID 名称 操作
{{$v['id']}} {{$v['username']}}
@endsection @section('javascript') @endsection

更改AdminController.php

添加对于角色相关表的数据添加,如下:

<?php

namespace App\Http\Controllers\admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Http\Requests\AdminCreateRequest;
use Illuminate\Support\Facades\Hash;
use App\Models\Admin;
use App\Models\Role;
use App\Models\AdminRole;
use Illuminate\Support\Facades\DB;

class AdminController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $admins = Admin::paginate(2,['id','username']);
        // 获取所有的角色
        $roles = Role::all();
        return view('admin.admin',['admins'=>$admins,'roles'=>$roles]);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(AdminCreateRequest $request)
    {
        DB::beginTransaction();
        try{
            //
            $username = $request->input('username');
            $password = Hash::make($request->input('password'));
            $role_id = $request->input('role');
            $admin = new Admin();
            $admin->username = $username;
            $admin->password = $password;
            $state = $admin->save();
            
            $admin_id = $admin->id;

            $adminRole = new AdminRole();
            $adminRole->admin_id = $admin_id;
            $adminRole->role_id = $role_id;

            $adminRoleState = $adminRole->save();
            
            if($state && $adminRoleState)
            {
                DB::commit();
                return response()->json(['code'=>'200','msg'=>'添加成功']);
            }
        }catch(\Exception $e){
            DB::rollback();
        }
        return response()->json(['code'=>'1000','msg'=>'添加失败']);
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(AdminCreateRequest $request, $id)
    {
        $username = $request->input('username');
        $password = Hash::make($request->input('password'));
        $state = Admin::where('id',$id)->update(['username'=>$username,'password'=>$password]);
        //
        if($state)
        {
            return response()->json(['code'=>'200','msg'=>'更改成功']);
        }else{
            return response()->json(['code'=>'1000','msg'=>'更改失败']);
        }
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $state = Admin::destroy($id);
        //
        if($state)
        {
            return response()->json(['code'=>'200','msg'=>'删除成功']);
        }else{
            return response()->json(['code'=>'1000','msg'=>'删除失败']);
        }
    }
    // 获取某个人员具体信息
    public function detail($id){
        $admin = Admin::where('id',$id)->first(['id','username']);
        if($admin)
        {
            return response()->json(['code'=>'200','info'=>$admin]);
        }else{
            return response()->json(['code'=>'1000','msg'=>'获取信息失败']);
        }
    }
}
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章