laravel-admin 是一个用于为Laravel提供后台界面的构建器,仅仅通过数行代码,就可以帮助我们构建CRUD后台。

laravel-admin 不需要写前端页面,在控制器controller中渲染即可

本人自己写的工资管理系统 https://github.com/qq175023117/wage-cms 感觉不错的话请点击右上角 star 谢谢支持

laravel-admin 手册地址:https://laravel-admin.org/docs/zh

laravel-admin demo地址 打开http://demo.laravel-admin.org/auth/login,用账号密码admin/admin登陆

laravel-admin 安装地址:https://laravel-admin.org/docs/zh/installation

model-grid支持快速构建数据表格

model-form支持快速构建数据表单

model-tree支持快速构建树状数据

下图为laravel–admin新更新的方法以及操作,如是最新版本,请查看文档

以下方法都是1.5.*的操作,由于框架在不断更新,新坑会更多,我就没有更新最新的方法,大家可以通过文档来学习

禁用创建按钮

$grid->disableCreateButton();

禁用分页条

$grid->disablePagination();

禁用查询过滤器

$grid->disableFilter();

禁用导出数据按钮

$grid->disableExport();

禁用行操作列

$grid->disableActions();

设置分页选择器选项

$grid->perPages([10, 20, 30, 40, 50]);

model-grid默认有两个行操作编辑和删除,可以通过下面的方式关闭它们:

$grid->actions(function ($actions) {
// 隐藏删除按钮
$actions->disableDelete();
// 隐藏修改按钮
$actions->disableEdit();
});

如果有自定义的操作按钮,可以通过下面的方式添加:

$grid->actions(function ($actions) {

// append一个操作
$actions->append(‘<a href=””><i class=”fa fa-eye”></i></a>’);

// prepend一个操作
$actions->prepend(‘<a href=””><i class=”fa fa-paper-plane”></i></a>’);
});

目前默认实现了批量删除操作的功能,如果要关掉批量删除操作:

$grid->tools(function ($tools) {
$tools->batch(function ($batch) {
$batch->disableDelete();
});
});

查询过滤:如下

$grid->filter(function ($query) {

// 去掉默认的id过滤器
$query->disableIdFilter();

$query->like(‘title’, ‘文章标题’);

$query->equal(‘cate_id’, ‘所属分类’)->select(
ArticleCategories::pluck(‘name’, ‘id’)
);
});

$form中的一些技巧

$form->text(‘from’, ‘文章来源’)->rules(‘required’) 可以加rules验证规则

$form->image(‘thumb’, ‘文章缩略图’)->uniqueName()
->move(‘upload/article/’ . date(“Ymd”))
->options([‘overwriteInitial’ => true]);

->options([‘overwriteInitial’ => true]);代表新图片替换修图片

->uniqueName() 为随机名称

//保存前回调

$form->saving(function (Form $form) {

});

//保存后回调
$form->saved(function (Form $form) {

});

获取URL中的id

$shopId = request()->route()->parameter(‘shop’);

if ($shopId) {
$form->text(‘shop_name’, ‘店铺名称’)
->rules(“required|unique:shops,shop_name,{$shopId},id”);
} else {
$form->text(‘shop_name’, ‘店铺名称’)
->rules(“required|unique:shops”);
}

当为添加操作时,店铺名称不可和数据库内其他数据重复

当为修改操作时,店铺名称除自己外不可和数据库内其他数据重复

$grid->model()->orderBy(‘id’, ‘desc’);

进入表格时,默认id倒序

模型树Tree

public function index()
{
return Admin::content(function (Content $content) {

$content->header(‘**管理’);
$content->description(”);

$content->body($this->tree());
});
}

protected function tree()
{
return Department::tree(function (Tree $tree) {

$tree->branch(function ($data) {
return “{$data[‘name’]}”;
});

});
}