public function handleAction(GridField $gridField, $actionName, $arguments, $data) { // use native GridFieldDeleteAction handleAction() method when !has_one if (!$gridField->isHaveOne()) { return parent::handleAction($gridField, $actionName, $arguments, $data); } // appropriate handling of has_one relationships [so as not to delete the object] $childProperty = $gridField->getName(); $gridField->childObject->{$childProperty} = 0; $gridField->childObject->write(); $gridField->setList(ArrayList::create()); }
public function handleAction(\GridField $gridField, $actionName, $arguments, $data) { $item = $gridField->getList()->byID($arguments['RecordID']); if (!$item) { return; } parent::handleAction($gridField, $actionName, $arguments, $data); $item->extend('onUnlinkFromGroup', $gridField); $group = $gridField->getForm()->getRecord(); if ($group) { $group->updateGroupCache(); } }