laravel-cms角色管理界面和控制器(1)

角色管理资源控制器

php artisan make:controller admin\RoleController --resource

角色管理界面

在这里我们可以复制之前的那个人员管理的界面进行更改

role.blade.php

路由中添加角色管理控制器

// 角色管理界面详情获取
Route::get('/role/detail/{id}',[App\Http\Controllers\admin\RoleController::class,'detail'])->name('role.detail');
// 角色管理
Route::resources([
    'role'=>App\Http\Controllers\admin\RoleController::class
]);

更改菜单中的路由配置

我们更改下之前的config/menu.php中角色管理那块的代码如下:

[
                    'menuId'=>12,
                    'menuName'=>'角色管理',
                    'url'=>'role.index',
                    'act'=>'1_添加,2_编辑,4_删除'
                ]

创建角色相关的模型

php artisan make:model Role

添加测试数据

这里只是为了显示角色列表,所以,我们可以在这个角色表中添加一些测试数据

创建RoleFactory工厂:

php artisan make:factory RoleFactory
<?php

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;

class RoleFactory extends Factory
{
    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            //
            "role_name"=>$this->faker->name,
        ];
    }
}

创建RoleSeeder:

 php artisan make:seeder RoleSeeder
<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Role;
class RoleSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
        Role::factory(5)->create();
    }
}

执行模拟种子:

 php artisan db:seed --class=RoleSeeder

这里会报错,因为默认的Role相关的model里需要时间戳,所以,这里我们在Models/Role.php中添加以下内容进行屏蔽时间戳,我这里全贴出来吧:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Role extends Model
{
    use HasFactory;
    public $timestamps = false;
}

再次执行迁移种子,看到数据库中有5条虚拟数据

更改RoleController.php中的index方法:

<?php

namespace App\Http\Controllers\admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Role;
class RoleController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $roles = Role::paginate(2,['id','role_name']);
        return view('admin.role',['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(Request $request)
    {
        //
    }

    /**
     * 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(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

更改role.blade.php显示出角色列表:

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

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

主要是修改列表那里的admin改成roles

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章