我在车主和汽车之间使用具有 many_many 关系的 dataobjectmanager(我不能为此使用 manymanydataobjectmanager)。每当创建新车时,我都会遍历所有者的所有实例并将其 ID 与新车 ID 一起添加到链接表中。
我的问题是执行此操作的代码在 onafterwrite 方法中并被调用两次。我不确定为什么。我还注意到,对于我的三个所有者来说,它奇怪地在链接表中创建了行。前两个 ID 将按顺序排列,然后将粘贴一个。所以它将是第 1 行、第 2 行和第 4 行,没有第 3 行。
这是我的 onAfterWrite 方法
public function onAfterWrite() {
if(Permission::check('ADMIN')){
$Pages = DataObject::get('Owner');
foreach($Pages as $owner) {
DB::query("INSERT INTO Owner_Cars (OwnerID, CarID) VALUES ('". $owner->ID . "', '" . $this->ID . "')");
}
}
else {
echo "Failure";
return false;
}
return parent::onAfterWrite();
}
我很感激你能给我的任何建议。
谢谢