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

Letitia ·
更新时间:2024-09-20
· 972 次阅读

今天在开发公司一个功能时,公司开发环境用的是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联动时,编辑默认没选上的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。

您可能感兴趣的文章:Laravel5.1 框架表单验证操作实例详解Laravel框架表单验证操作实例分析Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作Laravel框架表单验证详解Laravel 5框架学习之表单Laravel实现表单提交Laravel中表单size验证数字示例详解Laravel 5框架学习之子视图和表单复用laravel-admin表单提交隐藏一些数据,回调时获取数据的方法laravel5.2表单验证,并显示错误信息的实例laravel5表单唯一验证的实例代码laravel框架学习记录之表单操作详解



laravel 默认 admin select

需要 登录 后方可回复, 如果你还没有账号请 注册新账号