laravel-admin解决表单select联动时,编辑默认没选上的问题
今天在开发公司一个功能时,公司开发环境用的是laravel-admin,因为需要用上select联动,所以根据文档说明进行开发,并成功的使用上了,代码我就不重复,大家可以去参考laravel-admin官网的说明。
首先我们找到select的js,路径:跟目录/vendor/encore/laravel-admin/src/Form/Field下的Select.php文件,找到下面代码:
$script=<<getElementClassSelector()}",function(){ vartarget=$(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; returnd; }) }).trigger('change'); }); }); EOT;
并修改成以下代码:
$script=<<getElementClassSelector()}",function(){ vartarget=$(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; returnd; }) }).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联动时,编辑默认没选上的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短