laravel-admin解决表单select联动时,编辑默认没选上的问题

 更新时间:2019年09月30日 17:22:42   作者:佛布朗斯基  
今天小编就为大家分享一篇laravel-admin解决表单select联动时,编辑默认没选上的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

今天在开发公司一个功能时,公司开发环境用的是laravel-admin,因为需要用上select联动,所以根据文档说明进行开发,并成功的使用上了,代码我就不重复,大家可以去参考laravel-admin官网的说明。

首先我们找到select的js,路径:跟目录/vendor/encore/laravel-admin/src/Form/Field下的Select.php文件,找到下面代码:

$script = <<<EOT
$(document).on('change', "{$this->getElementClassSelector()}", function () {
 var target = $(this).closest('.fields-group').find(".$class");
 $.get("$sourceUrl?q="+this.value, function (data) {
  target.find("option").remove();
  $(target).select2({
   data: $.map(data, function (d) {
    d.id = d.$idField;
    d.text = d.$textField;
    return d;
   })
  }).trigger('change');
 });
});
 
EOT;

并修改成以下代码:

$script = <<<EOT
$(document).on('change', "{$this->getElementClassSelector()}", function () {
 var target = $(this).closest('.fields-group').find(".$class");
 $.get("$sourceUrl?q="+this.value, function (data) {
  target.find("option").remove();
  $(target).select2({
   data: $.map(data, function (d) {
    d.id = d.$idField;
    d.text = d.$textField;
    return d;
   })
  }).trigger('change');
 });
});
 
$('{$this->getElementClassSelector()}').trigger('change');
 
EOT;

我们在原有代码中加入这句:

$('{$this->getElementClassSelector()}').trigger('change');

作用就是在初始化的时候触发一次联动。

然后在我们的表单中,我们再来定义编辑初始时候的值,代码如下:

$form->select('hezuo', "合作模式")->options(function () {
 $record = request()->route()->parameters();
 $record = $record["chanpin"];
 $data = ChanpinModel::where('id', $record)->first();
 $hezuoList = array(
  "1" => '测试1',
  "2" => '测试2',
  "3" => '测试3',
  );
 $hezuo = $data->hezuo;
 return [$hezuo => $hezuoList[$hezuo]];
});

这段代码是根据当前记录的值,去获取对应所属那个选项,这样便使select联动编辑时,能够默认选上我们的值。

以上这篇laravel-admin解决表单select联动时,编辑默认没选上的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • php使用get和post传递数据出现414 Request-URI Too Large的原因分析及解决方案

    php使用get和post传递数据出现414 Request-URI Too Large的原因分析及解决方案

    Request-URI Too Large(请求URI过长)是一个HTTP错误状态码,表示所发送的HTTP请求中的URI(统一资源标识符)长度超过了服务器能够处理的限制,这篇文章主要介绍了php使用get和post传递数据出现414 Request-URI Too Large的解决方案,需要的朋友可以参考下
    2023-08-08
  • 浅谈Laravel核心解读之Console内核

    浅谈Laravel核心解读之Console内核

    这篇文章主要介绍了浅谈Laravel核心解读之Console内核,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • php发送post请求的三种方法

    php发送post请求的三种方法

    这篇文章主要介绍了php发送post请求的三种方法,分别使用curl、file_get_content、fsocket来实现post提交数据,需要的朋友可以参考下
    2014-02-02
  • PHP会员找回密码功能的简单实现

    PHP会员找回密码功能的简单实现

    下面小编就为大家带来一篇PHP会员找回密码功能的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • PHP的error_reporting错误级别变量对照表

    PHP的error_reporting错误级别变量对照表

    这篇文章主要介绍了PHP的error_reporting错误级别变量对照表,需要的朋友可以参考下
    2014-07-07
  • php头像上传预览实例代码

    php头像上传预览实例代码

    本篇文章主要介绍了php头像上传预览实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 微信企业转账之入口类分装php代码

    微信企业转账之入口类分装php代码

    这篇文章主要为大家详细介绍了微信企业转账之入口类分装php代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • php读取mysql的简单实例

    php读取mysql的简单实例

    读取数据库我们需要利用php中的函数连接数据库然后再利用sql查询 表中的数据再遍历出来即可了,下面我们来看一个简单读取mysql实例
    2014-01-01
  • docker-compose部署php项目实例详解

    docker-compose部署php项目实例详解

    在本篇文章里小编给大家整理了关于docker-compose部署php项目的相关实例以及代码内容,有需要的朋友们可以学习参考下。
    2019-07-07
  • 微信网页授权(OAuth2.0) PHP 源码简单实现

    微信网页授权(OAuth2.0) PHP 源码简单实现

    这篇文章主要为大家详细介绍了微信网页授权(OAuth2.0) PHP 源码简单实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08

最新评论