首页 > 解决方案 > 如果不存在枢轴变形表,如何更新或插入?

问题描述

我需要将序列号添加到数据透视表,这是变形关系。创建数据透视表并设置为变形表应该很简单:

具有数据透视表名称 SerialNumber 的类

public function serial_numberable() {
    return $this->morphTo();
}

现在如果我想在这个表中添加一些数据,我应该在其他类中创建函数。

类二手产品

public function serialNumbers() {
    return $this->morphMany('App\SerialNumber', 'serial_numberable');
}

其他类UsedKit相同

public function serialNumbers() {
    return $this->morphMany('App\SerialNumber', 'serial_numberable');
}

相同的功能。现在,如果我想将记录添加到数据透视表,我可以使用

$usedProduct = UsedProduct::find($productId);

// Add serial numbers
$serialNumber = new SerialNumber;
$serialNumber->serial_no = '87324y8743784';

$usedProduct->serialNumbers()->save($serialNumber);

这种变形关系完美无缺。但是如果数据透视表中存在记录,我不知道如何更新序列号?当我尝试总是保存新记录而不是更新时。

这是我的数据透视表。 在此处输入图像描述

标签: laravellaravel-5eloquent

解决方案


推荐阅读