laravel8.5与layuiadmin整合(6)

28.开发上面的对应路由方法
/routes/web.php
修改为如下内容

// 系统管理
Route::group(['prefix' => 'admin','middleware' => 'auth'],function() {
    .......
    //添加系统用户
    Route::get('/create',[App\Http\Controllers\Admin\UserController::class, 'create'])
        ->name('admin.user.create');
    // 获取系统用户列表
    Route::get('/data',[App\Http\Controllers\Admin\UserController::class, 'data'])
        ->name('admin.data');
    //删除系统用户
    Route::delete('user/destroy',[App\Http\Controllers\Admin\UserController::class, 'destroy'])
        ->name('admin.user.destroy');

});

29. 在文件中/app/Http/Controllers/Admin/UserController.php
添加如下方法

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class UserController extends Controller
{
    public function index() {
        return view('admin.user.index');
    }

    /**
     * 获取用户列表
     * @param Request $request
     * @return \Illuminate\Http\JsonResponse
     */
    public function data(Request $request) {
        $sql = "select * from users where 1";
        $sqlCount = "select count(*) as total from users where 1";
        $whereField = [];
        if($request->get('name')){
            $sql .= " and name = :name";
            $sqlCount .= " and name = :name";
            $whereField['name'] = $request->get('name');
        }
        if($request->get('email')){
            $sql .= " and email = :email";
            $sqlCount .= " and email = :email";
            $whereField['email'] = $request->get('email');
        }
        $page = 1;
        $pagesize = 10;
        if($request->get('page')){
            $page = intval($request->get('page'));
            if($page < 1){
                $page = 1;
            }
        }

        if($request->get('limit')){
            $pagesize = $request->get('limit');
            if($pagesize < 1) {
                $pagesize = 10;
            }
        }
        $start_num = ($page - 1) * $pagesize;
        $sql .= " limit {$start_num},{$pagesize}";
        if($whereField) {
            $listResult= DB::select($sql,$whereField);
            $totalCount = DB::selectOne($sqlCount,$whereField);
        }else{
            $listResult= DB::select($sql);
            $totalCount = DB::selectOne($sqlCount);
        }


        $listData = [];
        foreach ($listResult as $data_row) {
            $listData[] = $data_row;
        }

        $data = [
            'code' => 0,
            'msg' => '正在请求中...',
            'count' => $totalCount->total,
            'data' => $listData
        ];
        return response()->json($data);
    }

    /**
     * 添加新用户
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
     */
    public function create() {
        return view('admin.user.create');
    }

    /**
     * 保存新增用户
     */
    public function store(Request $request) {
        $data_input = $request->all();

        $name = $data_input['name'];
        $password = bcrypt($data_input['password']);
        $email = $data_input['email'];
        $data = ['name' => $name,'password' => $password,'email' => $email];

        if(User::create($data)) {
            return redirect()->to(route('admin.user'))->with(['status' => '添加用户成功']);
        }
        return redirect()->to(route('admin.user'))->withErrors(['status' => '系统错误']);
    }
}

30.添加上面对应的模板文件
/resources/views/admin/user/create.blade.php

@extends('admin.base')

@section('content')
<div class="layui-card">
    <div class="layui-card-header  layuiadmin-card-header-auto">
        <h2>添加用户</h2>
    </div>
    <div class="layui-card-body">
        <form class="layui-form" action="{{route('admin.user.store')}}" method="post">
            @include('admin.user._form')
        </form>
    </div>
</div>
@endsection

31.分别添加对应的路由和
模板文件 /resources/views/admin/user/_form.blade.php
路由 /routes/web.php 如下

// 系统管理
Route::group(['prefix' => 'admin','middleware' => 'auth'],function() {
    .........    
    //保存用户
    Route::post('/store',[App\Http\Controllers\Admin\UserController::class, 'store'])
        ->name('admin.user.store');

});

 

posted @ 2022-01-14 18:07  好记性还真不如烂笔头  阅读(103)  评论(0编辑  收藏  举报