今天小编就为大家分享一篇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联动时,编辑默认没选上的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:laravel-admin解决表单select联动时,编辑默认没选上的问题
基础教程推荐
猜你喜欢
- Yii框架连表查询操作示例 2023-02-13
- php实现构建排除当前元素的乘积数组方法 2022-11-23
- PHP判断一个字符串是否是回文字符串的方法 2024-01-31
- PHP+MySQL+sphinx+scws实现全文检索功能详解 2023-01-31
- 设定php简写功能的方法 2023-03-17
- PHP手机短信验证码实现流程详解 2022-10-18
- PHP实现抽奖系统的示例代码 2023-06-26
- php实现数组筛选奇数和偶数示例 2024-02-05
- php数组函数序列之array_sum() – 计算数组元素值之和 2024-01-15
- PHP实现文件下载【实例分享】 2024-04-27
