class BlogPost extends DataObject { .... public function onAfterWrite() { parent::onAfterWrite(); sendNotificationToSubscribers(); } }
class BlogPost extends DataObject { .... public function onAfterWrite() { parent::onAfterWrite(); $this->updateSlug(); } private function updateSlug() { $slug = strtolower(preg_replace('/[\s]+/', '-', $this->Title)); $this->Slug = $slug; $this->write(); } }
class Product extends DataObject { .... public function onAfterWrite() { parent::onAfterWrite(); $this->updateOrderStatus(); } private function updateOrderStatus() { $orders = Order::get()->filter(array('ProductID' => $this->ID)); foreach ($orders as $order) { if ($this->Inventory <= 0) { $order->Status = 'Backordered'; } else { $order->Status = 'In Stock'; } $order->write(); } } }This code sample updates the status of related orders after a product's inventory level changes. Package Library: CakePHP framework