Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Data Model Questions /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

how to automatically delete objects when page is deleted?

Go to End

2 Posts   1555 Views


Community Member, 47 Posts

20 April 2010 at 4:26pm


let's imagine I have a page defined as follows :

class MyPage extends Page {
static $db = array(



static $has_many = array(
'myEntry' => 'myEntry'


'myEntry' is simply an object and is in a relation *only* with myPage. These objects are managed with the DOM.

When a page of type 'myPage' is deleted, the associated 'myObjects' objects remain in the database. Because the
application can only have one myPage , I would like that when a page 'myPage' is deleted, all the 'myEntries' be deleted too.

What is the best way to achieve this? Can we attached a function to the myPage class which will be called when an instance is
deleted from the Published site ?

An acceptable workaround would be to remind the administrator to remove object entries before he/she attempts to delete a page
but this would also require to 'catch' the action in CMS and attach a sort of callback function.

Please let me know if you have any tips or ideas ...or if this does not make much sense ..




Forum Moderator, 5523 Posts

20 April 2010 at 6:08pm

You could use the built in onBeforeDelete() or onAfterDelete() handlers on your MyPage class


class MyPage extends Page {

function onBeforeDelete() {


// .. delete your objects