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

已从CSDN搬家到简书

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

仅仅通过数行代码,就可以帮助我们构建CRUD后台。

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

excel自定义导出功能见:https://blog.csdn.net/qq175023117/article/details/89335152

报错:Disk [admin] not configured, please add a disk config in `config/filesystems.php`请点击链接找解决方案:https://blog.csdn.net/qq175023117/article/details/83989255

遇到报错:Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes请点击链接找解决方案:https://blog.csdn.net/qq175023117/article/details/86066925

如需重写内置视图以及设置语言:https://blog.csdn.net/qq175023117/article/details/83898955

自己写的工资管理系统 可查看源码 https://github.com/WXiangQian/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支持快速构建树状数据

以下方法都是1.5.*的操作,由于框架在不断更新,新坑会更多,所以我先把1.5的坑踩完,后期考虑在更新

如果你使用的是1.6.*版本点击跳转:https://blog.csdn.net/qq175023117/article/details/86133101

实现二级联动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')]);
}

如果你想在左侧顶部添加一个搜索框,更利于快速搜索,点击: https://blog.csdn.net/qq175023117/article/details/86133101

禁用创建按钮

$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]);

纯原创,希望可以对大家有帮助,文章会不断更新,如有疑问或新坑,欢迎评论

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269