经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
关于Laravel-admin的基础用法总结和自定义model详解
来源:jb51  时间:2019/10/9 8:36:08  对本文有异议

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

基础用法

自定义model

  1. 当列表数据获取有特定条件或自己写ORM方法时可以用到,支持排序
  2. $grid->model()->select('id','name')->where('status',1)->groupBy('project_id');
  3. $grid->model()->select('id','name')->where('status',1)->groupBy('project_id');
  4. //结合having 查出名字重复的
  5. $grid->model()->select('name_en')->groupBy('name_en')->havingRaw('count(name_en)>1')
  6. //嵌套子查询 查出名字重复的全部信息
  7. $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字段,并将这一列设置为可排序列

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

获取单列数据的方法

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

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

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

判断type来显示不同的状态

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

where条件

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

三个时间的显示

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

筛选框控制方法

基本方法

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

按钮控制

禁用导出

  1. $grid->disableExport();

禁用新增

  1. $grid->disableCreateButton();

禁用行选择checkbox

  1. $grid->disableRowSelector();

去掉重置 [from]

  1. $form->disableReset();

关闭默认行操作

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

关闭批量删除

  1. $grid->tools(function ($tools) {
  2. //关闭批量删除
  3. $tools->batch(function ($batch) {
  4. $batch->disableDelete();
  5. });
  6. });

FORM表单提交

禁用重置按钮

  1. $form->disableReset();

文本输入框

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

上传图片/文件

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

表单提交url

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

表单提交下拉框

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

select下来

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

laravel SQL取值

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

表单输入HTML editor编辑器

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

单选按钮 样式转换

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

隐藏域

  1. $form->hidden('is_in');

保存数据的回调

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

自定义按钮操作

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

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

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

  1. $js = <<<EOD
  2. <script>
  3. //隐藏的点击事件
  4. $(document).on('click', '.noShow', function() {
  5. //获取的ID
  6. var id = $(this).data('id');
  7. console.log(id);
  8. swal({
  9. title: "确认隐藏?",
  10. type: "warning",
  11. showCancelButton: true,
  12. confirmButtonColor: "#DD6B55",
  13. confirmButtonText: "确认",
  14. closeOnConfirm: false,
  15. cancelButtonText: "取消"
  16. },
  17. function(){
  18. $.ajax({
  19. method: 'post',
  20. url: '/admin/articles/hidden',
  21. data: {
  22. //文章ID
  23. id:id,
  24. //post请求token
  25. _token:LA.token,
  26. },
  27. success: function (data) {
  28. $.pjax.reload('#pjax-container');
  29. if (typeof data === 'object') {
  30. if (data.status == 1) {
  31. swal(data.msg, '', 'success');
  32. } else {
  33. swal(data.msg, '', 'error');
  34. }
  35. }
  36. }
  37. })
  38. }
  39. )
  40. });
  41. </script>
  42. EOD;
  43. //传递到页面
  44. $content->body($js);
  45. //执行你的model
  46. $content->body();

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号