当前位置:编程学习 > > 正文

laravel怎么返回指定列(laravel-admin解决表单select联动时,编辑默认没选上的问题)

时间:2021-10-18 11:45:14类别:编程学习

laravel怎么返回指定列

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

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

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • $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;
  • 并修改成以下代码:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • $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;
  • 我们在原有代码中加入这句:

  • ?
  • 1
  • $('{$this->getElementClassSelector()}').trigger('change');
  • 作用就是在初始化的时候触发一次联动。

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • $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联动时,编辑默认没选上的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。

    原文链接:https://blog.csdn.net/HZX19941018/article/details/85052629

    上一篇下一篇

    猜您喜欢

    热门推荐