关于Laravel-admin的基础用法总结和自定义model详解


Posted in PHP onOctober 08, 2019

总结laravel-admin展示用到的基本方法

基础用法

自定义model

当列表数据获取有特定条件或自己写ORM方法时可以用到,支持排序
$grid->model()->select('id','name')->where('status',1)->groupBy('project_id');
$grid->model()->select('id','name')->where('status',1)->groupBy('project_id');
//结合having 查出名字重复的
$grid->model()->select('name_en')->groupBy('name_en')->havingRaw('count(name_en)>1')
//嵌套子查询 查出名字重复的全部信息
$grid->model()->select('id','name_en')->whereIn('name_en',Project::select('name_en')->groupBy('name_en')->havingRaw('count(name_en)>1'))->orderBy('name_en');

模型数据获取

第一列显示id字段,并将这一列设置为可排序列

$grid->id('ID')->sortable();

获取单列数据的方法

$grid->name_cn('名称');

注:name_cn为与数据库对应的字段名

$grid->column('name_cn','名称');

判断type来显示不同的状态

$grid->column('type','类型?')->display(function ($type) {
 return $type == 1 ? '111' : '222';
});

where条件

$grid->model()->where('type', 0);

三个时间的显示

// 下面为三个时间字段的列显示
$grid->release_at();
$grid->created_at();
$grid->updated_at();

筛选框控制方法

基本方法

//filter($callback)方法用来设置表格的简单搜索框
 $grid->filter(function ($filter) {
  //1.时间段筛选 设置created_at字段的范围查询
  $filter->between('created_at', '筛选时间')->datetime();
  //2.字段模糊查询 like = '% %'
  $filter->like('name', '姓名');
  //3.字段equal 筛选
  $filter->equal('status', '状态')->select([0 => '下线', 1 => '上线']);
  //4.去掉默认的ID搜索
  $filter->disableIdFilter();
  //5.

 });

按钮控制

禁用导出

$grid->disableExport();

禁用新增

$grid->disableCreateButton();

禁用行选择checkbox

$grid->disableRowSelector();

去掉重置 [from]

$form->disableReset();

关闭默认行操作

$grid->actions(function ($actions) {
  //关闭删除
 $actions->disableDelete();
 //关闭编辑
 $actions->disableEdit();
 //自定义操作按钮
 $actions->append('<button type="button" class="btn btn-danger noShow" data-id="' . $actions->getKey() . '" >隐藏</button>');
});

关闭批量删除

$grid->tools(function ($tools) {
 //关闭批量删除
 $tools->batch(function ($batch) {
  $batch->disableDelete();
 });
});

FORM表单提交

禁用重置按钮

$form->disableReset();

文本输入框

//默认展示$data['name']的值,新接收的值存储user表name字段
$form->text('user.name', '名称')->default($data['name']);

上传图片/文件

$form->image('user.logo', 'logo')
    #随机文件名
    ->uniqueName()
    #验证文件格式('mimes:doc,docx,xlsx');
    ->rules('mimes:png')
    #输入框下边的help提示语
    ->help($str);

表单提交url

$form->url('user.website', '官网')
    #默认填充url 传参
    ->default($url)
    #提示的url
    ->help('eg: http://www.aware.bi');

表单提交下拉框

#下拉框展示$message提示语
$form->multipleSelect('project.tags1', $message)
    #下拉框数据
    ->options($tags['children']);

select下来

$types = array('0'=>'教育','1'=>'医疗');
$form->select('type', '类型')->options($types);

laravel SQL取值

$users = User::all()->pluck('name', 'id')->toArray();

表单输入HTML editor编辑器

$form->editor('detail', '详细介绍');

单选按钮 样式转换

$states = [
 'on' => ['value' => 1, 'text' => '上线', 'color' => 'success'],
 'off' => ['value' => 0, 'text' => '下线', 'color' => 'danger'],
];
$form->switch('status', '上/下线')->states($states);

隐藏域

$form->hidden('is_in');

保存数据的回调

$form->saving(function (Form $form) {
 #指定值为固定1
 $form->is_in = 1;
 #验证值是够有重复
 if($from->nick_name !== $form->model()->email && User::where('email',$form->email)->value('id')){
 #错误信息提示
 $error = new MessageBag(['title'=>'提示','message'=>'邮箱已存在!']);
  return back()->withInput()->with(compact('error'));
 }
});

自定义按钮操作

我们先自定义了一个隐藏按钮

$grid->actions(function ($actions) {
 //自定义操作按钮
 $actions->append('<button type="button" class="btn btn-danger noShow" 
 data-id="' . $actions->getKey() . '" >隐藏</button>');
 //当前数据的ID
});

在controller写JS文件把执行JS渲染到模板

$js = <<<EOD
   <script>
   //隐藏的点击事件
$(document).on('click', '.noShow', function() {
 //获取的ID
 var id = $(this).data('id');
  console.log(id);
 swal({
  title: "确认隐藏?",
  type: "warning",
  showCancelButton: true,
  confirmButtonColor: "#DD6B55",
  confirmButtonText: "确认",
  closeOnConfirm: false,
  cancelButtonText: "取消"
 },
 function(){
  $.ajax({
   method: 'post',
   url: '/admin/articles/hidden',
   data: {
    //文章ID
    id:id,
    //post请求token
    _token:LA.token,
   },
   success: function (data) {
    $.pjax.reload('#pjax-container');
    if (typeof data === 'object') {
     if (data.status == 1) {
      swal(data.msg, '', 'success');
     } else {
      swal(data.msg, '', 'error');
     }
    }
   }
  })
 }
 )
});
   </script>
EOD;
   //传递到页面
   $content->body($js);
   //执行你的model
   $content->body();

以上这篇关于Laravel-admin的基础用法总结和自定义model详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
浅谈Windows下 PHP4.0与oracle 8的连接设置
Oct 09 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Oct 29 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
PHP 读取和编写 XML
Nov 19 PHP
php数组添加元素方法小结
Dec 20 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
PHP实现合并discuz用户
Aug 05 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
PHP hebrev()函数用法讲解
Feb 21 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
Jun 25 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 #PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
Oct 08 #PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 #PHP
PHP7 安装event扩展的实现方法
Oct 08 #PHP
thinkphp5+layui实现的分页样式示例
Oct 08 #PHP
调试php程序的简单步骤
Oct 04 #PHP
用php定义一个数组最简单的方法
Oct 04 #PHP
You might like
目录,文件操作详谈―PHP
2006/11/25 PHP
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
简单谈谈favicon
2015/06/10 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
PHP7 新增常量
2021/03/09 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
python中实现定制类的特殊方法总结
2014/09/28 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
解放思想大讨论活动心得体会
2014/09/11 职场文书
个人典型事迹材料
2014/12/30 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
Vue全家桶入门基础教程
2021/05/14 Vue.js
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server