导语
安装完成之后,简单的改了下配置和页面效果。接下来快速的搭建 CURD。就用之前测试用的 faker_users
表进行。
控制器和路由
- 指定
model
生成控制器php artisan admin:make Database\\FakerUserController --model=App\\Models\\FakerUser
。执行之后,生成了文件Database/FakerUserController
,并且已经有了相关的操作方法 - 在
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');
});
});
添加菜单
代码修改完成后,添加相对应的菜单
添加完成后,来访问一下
看起来还不错,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 文档。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。