laravel-admin的多级联动方法


Posted in PHP onSeptember 30, 2019

laravel-admin的框架已经定义好的多级联动可以去官网查看,这里就不再进行赘述,但是使用中发现功能与想要的东西有些偏差,刚进来默认的时候不好用,就自己改了改,增加了一个默认的方法。

以城市和地区的二级联动为例,当我选择沈阳时,地区列表变成和平区、沈河区、铁西区等等,当我选择大连时显示瓦房店、甘井子等等

laravel-admin的多级联动方法

首先,按照laravel-admin的文档,在Model中添加

public function __construct(array $attributes = [])
 {
  parent::__construct($attributes);

  $this->setParentColumn('pid');
  $this->setOrderColumn('sort');
  $this->setTitleColumn('name');
 }

然后在form上添加城市和地区的select控件

protected function form()
 {
  return Admin::form(AreaModel::class, function (Form $form) {

   $form->text('name', '名称')->rules("required");
   $form->select('city_id','城市')->options(

    DealCityModel::selectOptionsNoRoot()

   )->load('pid', 'district')->loadOne('pid', 'district');//load方法是框架自带的,定义在vendor=>encore=>laravel-admin=>src=>Form=>Field=>Select文件中,loadone是自己写的,在后面会给出代码district为自己定义的方法,pid是根据城市的变化而变化的下拉列表框名称,也就是下面这个。

   $form->select('pid','地区')->options(array(0 =>'请选择地区'));

  });
 }

在from方法后面新建一个district方法

public function district(Request $request)
 {
  $cityId = $request->get('q');

  $list = AreaModel::where(['city_id' => $cityId, 'pid' => 0])->get(['id', DB::raw('name as text')]);

  foreach ($list as $key => $value) {

   $arr[] = array("id" => $value->id, "text" => $value->text);

  }

  return $arr;//返回数组到地区的option

 }

在vendor=>encore=>laravel-admin=>src=>Form=>Field=>Select文件里load方法后新建一个方法命名为loadone,代码如下:

public function loadOne($field, $sourceUrl, $idField = 'id', $textField = 'text')
 {
  if (Str::contains($field, '.')) {
   $field = $this->formatName($field);
   $class = str_replace(['[', ']'], '_', $field);
  } else {
   $class = $field;
  }

  $script = <<<EOT
$(function(){
 var target = $(".$class");
 $.get("$sourceUrl?q="+$("{$this->getElementClassSelector()}").val(), function (data) {
  target.find("option").remove();
  $(target).select2({
   data: $.map(data, function (d) {
    d.id = d.$idField;
    d.text = d.$textField;
    return d;
   })
  });
 });
});
EOT;

  Admin::script($script);

  return $this;
 }

其实就是相当于给load方法增加了一个默认时的数据填充。

最后,千万别忘记在路由上加上district方法哈,要把定义district的路由写在上面→

laravel-admin的多级联动方法

以上这篇laravel-admin的多级联动方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP中MD5函数使用实例代码
Jun 07 PHP
php设计模式 Composite (组合模式)
Jun 26 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
php笔记之:文章中图片处理的使用
Apr 26 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
浅谈php命令行用法
Feb 04 PHP
php操作MongoDB类实例
Jun 17 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
php函数mkdir实现递归创建层级目录
Oct 27 PHP
PHP学习记录之数组函数
Jun 01 PHP
PHP写API输出的时用echo的原因详解
Apr 28 PHP
php更新cookie内容的详细方法
Sep 30 #PHP
使用laravel的migrate创建数据表的方法
Sep 30 #PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 #PHP
php解决约瑟夫环算法实例分析
Sep 30 #PHP
php使用curl伪造浏览器访问操作示例
Sep 30 #PHP
laravel-admin 在列表页添加自定义按钮的例子
Sep 30 #PHP
Laravel框架控制器的request与response用法示例
Sep 30 #PHP
You might like
如何使用GDB调试PHP程序
2015/12/08 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
javascript 事件处理、鼠标拖动效果实现方法详解
2012/05/11 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
浅谈Python 中整型对象的存储问题
2016/05/16 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
TensorFlow实现创建分类器
2018/02/06 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
python Django 创建应用过程图示详解
2019/07/29 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
存储过程的优缺点是什么
2015/01/10 面试题
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
旅游管理本科生求职信
2013/10/14 职场文书
求职自荐信范文格式
2013/11/29 职场文书
公司培训心得体会
2014/01/03 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
师范生见习报告
2014/10/31 职场文书
观后感的写法
2015/06/19 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
导游词之峨眉山
2019/12/16 职场文书