Я использую dataobjectmanager с отношением many_many (я не могу использовать для этого manymanydataobjectmanager) между владельцем и автомобилем. Всякий раз, когда создается новый автомобиль, я перебираю все экземпляры владельца и добавляю его идентификатор в связанную таблицу вместе с идентификатором нового автомобиля.
Моя проблема в том, что код для этого находится в методе onafterwrite и вызывается дважды. Я не уверен, почему. Я также заметил, что для трех моих владельцев он странно создает строки в связанной таблице. Первые два идентификатора будут в порядке, затем он будет придерживаться одного. Таким образом, это будут ряды 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();
}
Я был бы признателен за любой совет, который вы могли бы мне дать.
Спасибо