laravel 后台管理框架(关于Laravel-admin的基础用法总结和自定义model详解)
类别:编程学习 浏览量:2506
时间:2021-10-11 00:32:30 laravel 后台管理框架
关于Laravel-admin的基础用法总结和自定义model详解总结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详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/guoyanga1/article/details/80774570
您可能感兴趣
- laravel框架如何查询空的信息(使用Laravel中的查询构造器实现增删改查功能)
- laravel自定义命令(laravel-admin select框默认选中的方法)
- laravel count 报错(解决laravel5.5访问public报错的问题)
- laravel框架怎么获取变量(解决laravel id非自增 模型取回为0 的问题)
- laravel接口请求模拟(Laravel 类和接口注入相关的代码)
- laravel多线程处理请求(Laravel 6 将新增为指定队列任务设置中间件的功能)
- laravel时间日期字段比较(Laravel find in set排序实例)
- laravel的api验证失败重定向(Laravel的Auth验证Token验证使用自定义Redis的例子)
- laravel后台管理(关于laravel后台模板laravel-admin select框的使用详解)
- laravel队列不超时(在laravel中实现事务回滚的方法)
- laravel服务器设置(基于Laravel-admin 后台的自定义页面用法详解)
- laravel图文消息后台处理(laravel利用中间件防止未登录用户直接访问后台的方法)
- laravel模型怎么使用(laravel5.1框架model类查询的实现方法)
- laravel活动时间查询(laravel 时间格式转时间戳的例子)
- laravel分页(laravel5.5添加echarts实现画图功能的方法)
- 简单laravel框架教程交流(使用composer 安装 laravel框架的方法图文详解)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
热门推荐
- mysql如何给一个表批量添加字段(mysql从一张表查询批量数据并插入到另一表中的完整实例)
- dockerpush被拒绝(docker pull拉取超时的解决方案)
- JS脚本中Null与Undefined的区别
- python socket 设置通信协议(详解python中TCP协议中的粘包问题)
- python如何判断文件是否结束(python判断文件是否存在,不存在就创建一个的实例)
- dedecms增加导航内容(织梦DEDECMS中让近三天发布的文章显示红色日期或加上new字或小图片的方法)
- 织梦自定义属性设置(织梦 DeDeCMS 添加自定义属性的方法图文教程)
- 织梦各个模板对应的页面(织梦DEDECMS实现留言板调用模板头部及底部的方法)
- android系统如何截屏(Android实现矩形区域截屏的方法)
- python如何解压加密zip文件(python读取有密码的zip压缩文件实例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9