Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

自定义的模式创建成功后如何赋值到该字段? #6

Open
Hanson opened this issue Jan 8, 2020 · 11 comments
Open

自定义的模式创建成功后如何赋值到该字段? #6

Hanson opened this issue Jan 8, 2020 · 11 comments

Comments

@Hanson
Copy link

Hanson commented Jan 8, 2020

编辑的时候如何对 sku 进行赋值?

@Hanson
Copy link
Author

Hanson commented Jan 8, 2020

通过测试可以使用原有的json格式传参在 $form->sku('skus')->default($json)

但问题是如果 sku 是独立表的话,会带有 id ,这种形式没有传 id

@wyzheng1997
Copy link
Owner

本扩展只会将SKU数据写指定的字段中,如需个性化处理数据,请在【表单回调】中处理

粗暴的解决方法可以先删除sku独立表中对应商品的数据在重新赋值

$form->saving(function($form) {
    // 先删除
    Sku::where('goods_id', $form->goods_id)->delete();

    // 在赋值
    dd($form->sku);
});

@Hanson
Copy link
Author

Hanson commented Jan 8, 2020

感谢作者的回复,我这边已经解决了,稍后提个 PR

@Hanson
Copy link
Author

Hanson commented Jan 8, 2020

#7 已解决了,自行修改 vendor 中的 sku.js 已实现自身需求,作者可以参考一下

@gg22mm
Copy link

gg22mm commented Jun 10, 2020

本扩展只会将SKU数据写指定的字段中,如需个性化处理数据,请在【表单回调】中处理

粗暴的解决方法可以先删除sku独立表中对应商品的数据在重新赋值

$form->saving(function($form) {
    // 先删除
    Sku::where('goods_id', $form->goods_id)->delete();

    // 在赋值
    dd($form->sku);
});

虽然这个方法可以,但是是不是有点影响(这样方式要解决两个问题)
1、关联主键问题,因为每次修改都会删除,再添加,主键与用户购买的规格id不一致,解决办法是要自己生成一个唯一的主键做为主键。
2、性能问题,比如现在独立规格表几千万数据,要删除,再添加是不是不太妥当

@gg22mm
Copy link

gg22mm commented Jun 10, 2020

不过先删除sku再添加好象也是最好的办法,因为中间还会有删除的操作,要不就太麻烦了

@Hanson
Copy link
Author

Hanson commented Jun 10, 2020

@gg22mm 作者不维护了,但你可以看我PR那里,加一行就可以了

@gg22mm
Copy link

gg22mm commented Jun 10, 2020

哦哦。多谢!! 是这个吧: tbody_html += ''; 不过要解决我上面的两个问题

@gg22mm
Copy link

gg22mm commented Jun 11, 2020

@gg22mm 作者不维护了,但你可以看我PR那里,加一行就可以了

合并一下这个: (修复)修改时id,库存,价格变为0

if (JSON.stringify(_this.attrs) !== JSON.stringify(attr)) {
_this.attrs = attr;
//_this.SKUForm() //禁用这个,查这个

      //添加下面的
      let old_val = _this.warp.find('.Js_sku_input').val();
       old_val = JSON.parse(old_val);
       _this.SKUForm(old_val.sku)
    }

@lyne007
Copy link

lyne007 commented Aug 16, 2021

通过测试可以使用原有的json格式传参在 $form->sku('skus')->default($json)

但问题是如果 sku 是独立表的话,会带有 id ,这种形式没有传 id

这个$json是要从库里读出来组成原有数据格式吗?

@Hanson
Copy link
Author

Hanson commented Aug 16, 2021

@lyne007 是的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants