我需要在数据透视表中添加序列号,这是变形关系。创建数据透视表并将其设置为变形表应该很简单:
具有数据透视表名称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);
此变体关系非常完美。但是,如果数据透视表中的记录存在,我不知道如何更新序列号?当我总是尝试保存新记录而不是更新时。