laravel select联动

本文详细解析了Laravel Admin中表单SELECT级联功能的问题,包括如何正确设置产品类别选择,以及如何修正编辑状态下默认选项未被选中的问题。通过修改源代码,确保了级联选项在页面加载时能正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 $form->select('product_category_id','产品类别')->options(ProductCategory::where('parent_id',0)->pluck('title','id'))->load('product_category_er_id', '/admin/product_category_er');
        $form->select('product_category_er_id','产品下一级类别');
 public function product_category_er(){
        $id=request('q');
        return ProductCategory::where('parent_id',$id)->get(['id', DB::raw('title as text')]);
    }

此处应该写为下面的:

return ProductCategory::where('parent_id','=', $parent_id)->get(['id', DB::raw('title as text')]);


不应写为:

return ProductCategory::where('parent_id','=', $parent_id)->pluck('title ', 'id');


laravel-admin解决表单SELECT联动时,编辑默认没选上

       首先我们找到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');


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值