laravel-admin新手快速入门以及遇到的那些坑

laravel-admin 是一个用于为Laravel提供后台界面的构建器前端

仅仅经过数行代码,就能够帮助咱们构建CRUD后台。laravel

laravel-admin不须要写前端页面,在控制器controller中渲染便可为了方便你们使用,下面部分代码都是属于可复制的demogit

Laravel-admin 自定义excel导出数据github

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 bytesapi

如需重写内置视图以及设置语言数组

本身写的工资管理系统可查看源码  github.com/WXiangQian/…bash

本身写的办公用品管理系统可查看源码  github.com/WXiangQian/…app

感受不错的话请点击右上角  star  谢谢支持

laravel-admin  手册地址框架

laravel-admin demo地址  打开demo.laravel-admin.org/auth/login,用帐号密码admin/admin登录

laravel-admin 安装地址:laravel-admin.org/docs/zh/ins…

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

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

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

如下方法都是1.5.*的操做,因为框架在不断更新,新坑会更多,因此我先把1.5的坑踩完,后期考虑在更新

若是你使用的是1.6.*版本点击跳转

实现二级联动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]);
复制代码

纯原创,但愿能够对你们有帮助,文章会不断更新,若有疑问或新坑,欢迎评论

相关文章
相关标签/搜索