如果不存在透视变形表,如何更新或插入?

时间:2018-12-14 15:45:43

标签: laravel laravel-5 eloquent

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

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

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

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

UsedProducts类

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);

此变体关系非常完美。但是,如果数据透视表中的记录存在,我不知道如何更新序列号?当我总是尝试保存新记录而不是更新时。

这是我的数据透视表。 enter image description here

0 个答案:

没有答案