3

导语

安装完成之后,简单的改了下配置和页面效果。接下来快速的搭建 CURD。就用之前测试用的 faker_users 表进行。

控制器和路由

  1. 指定 model 生成控制器 php artisan admin:make Database\\FakerUserController --model=App\\Models\\FakerUser。执行之后,生成了文件 Database/FakerUserController,并且已经有了相关的操作方法
  2. admin/route.php 文件中添加路由,最终代码如下
<?php

use Illuminate\Routing\Router;

Admin::registerAuthRoutes();

Route::group([
    'prefix' => config('admin.route.prefix'),
    'namespace' => config('admin.route.namespace'),
    'middleware' => config('admin.route.middleware'),
], function (Router $router) {

    $router->get('/', 'HomeController@index');

    Route::group(['prefix' => 'database', 'namespace' => 'Database'], function ($route) {
        $route->resource('faker_user', 'FakerUserController');
    });
});

添加菜单

代码修改完成后,添加相对应的菜单

添加菜单

添加完成后,来访问一下

faker_user 列表

看起来还不错,CURD 的功能都有了,而且有导出、筛选等功能。

细节优化

当然还是有些不足的,例如在添加的时候,年龄这里是个开关

创建

简单修改如下

/**
     * Make a form builder.
     *
     * @return Form
     */
    protected function form()
    {
        $form = new Form(new FakerUser);

        // FakerUser::labels() 是对应的显示标签
        
        $form->text('name', FakerUser::labels()['name']);
        $form->email('email', FakerUser::labels()['email']);
        $form->number('age', FakerUser::labels()['age']);
        $form->text('city', FakerUser::labels()['city']);

        return $form;
    }

创建

看起来好点了😄。再改下列表页

/**
     * Make a grid builder.
     *
     * @return Grid
     */
    protected function grid()
    {
        $grid = new Grid(new FakerUser);

        $grid->id(FakerUser::labels()['id']);
        $grid->name(FakerUser::labels()['name']);
        $grid->email(FakerUser::labels()['email']);
        $grid->age(FakerUser::labels()['age'])->sortable();// 字段排序
        $grid->city(FakerUser::labels()['city']);
        $grid->created_at(FakerUser::labels()['created_at']);
        $grid->updated_at(FakerUser::labels()['updated_at']);

        // 默认倒序
        $grid->model()->orderBy('id', 'desc');

        $grid->filter(function ($filter) {
            // 禁止默认的 id 筛选
            $filter->disableIdFilter();
            // 姓名筛选
            $filter->like('name', FakerUser::labels()['name']);
            // 城市筛选
            $filter->like('city', FakerUser::labels()['city']);
        });

        return $grid;
    }

列表

搜索的列表

结语

其余的代码修改请查看 Github。本文只做了简单的修改,laravel-admin 支持很多 CURD 功能,可以看下官方文档。


参考资料:laravel-admin 文档


Haoyuqi
472 声望23 粉丝

PHPer