laravel-admin
是一个用于为Laravel提供后台界面的构建器
仅仅通过数行代码,就可以帮助我们构建CRUD后台。
laravel-admin
不需要写前端页面,在控制器controller中渲染即可为了方便大家使用,下面部分代码都是属于可复制的demo
laravel-admin报错:Disk [admin] not configured, please add a disk config in `config请点击链接找解决方案
遇到报错:Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes
自己写的工资管理系统可查看源码 https://github.com/WXiangQian/wage-cms
自己写的办公用品管理系统可查看源码 https://github.com/WXiangQian/wage-cms
感觉不错的话请点击右上角 star 谢谢支持
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
支持快速构建树状数据
以下方法都是1.5.*的操作,由于框架在不断更新,新坑会更多,所以我先把1.5的坑踩完,后期考虑在更新
实现二级联动select
// form代码
// 其中load('d_id', '/admin/users/d_id');的意思是,在当前select的选项切换之后,
//会把当前选项的值通过参数q,调用接口/admin/users/d_id,并把api返回的数据填充为d_id选择框的选项
$form->select('pid', '部门')->options(Department::where('pid', 0)->pluck('name', 'id'))
->load('d_id', '/admin/users/d_id')->rules('required');
$form->select('d_id', '岗位')->options(function ($id) {
return Department::where('id', $id)->pluck('name', 'id');
})->rules('required');
// routes
$router->get('/users/d_id', 'UsersController@d_id');//切记,放资源路由上方
//controller
public function d_id(Request $request)
{
$q = $request->get('q');
return Department::where('pid', $q)->get(['id', DB::raw('name as text')]);
}
禁用创建按钮
$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->actions(function ($actions) {
// 当前行的数据数组
$row = $actions->row;
// 获取当前行主键值
$id = $actions->getKey();
});
目前默认实现了批量删除操作的功能,如果要关掉批量删除操作:
$grid->tools(function ($tools) {
$tools->batch(function ($batch) {
$batch->disableDelete();
});
});
查询过滤Filter**:如下**
$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]);//代表新图片替换修图片
->uniqueName() //为随机名称
//保存前回调
$form->saving(function (Form $form) {
});
//保存后回调
$form->saved(function (Form $form) {
});
// 设置表单提交的action
$form->setAction('admin/users');
获取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表格时,默认id倒序
$grid->model()->orderBy('id', 'desc');
模型树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']}";
});
});
}
在页面调用下面的方法,它将会调用toastr组件,在页面的右上角添加一条浮动的提示
admin_toastr('Message...', 'success');
admin_toastr('Message...', 'info');
admin_toastr('Message...', 'warning');
admin_toastr('Message...', 'error');
也可以接收第三个参数,给toastr添加设置参数,更多参数参考toastr
admin_toastr('Message...', 'success', ['timeOut' => 5000]);