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.

Data Model Questions /

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

Expiring a date-based object?


Go to End
Reply


3 Posts   1676 Views

Avatar
Bauer-CTU

Community Member, 10 Posts

11 October 2010 at 11:26pm

Edited: 11/10/2010 11:27pm

Hi,
I can't get my head round the following ... I hope someone can help :-)

I have an Event DataObject as below and want any events that have taken place not to display when I call the events stored in the database. Ideally, I want to automatically delete the event from the database at the end of the day on which it takes place.

I see the CMS Workflow module has an Expiry method but from what I can gather this only applies to Pages not objects.

mysite/code/Event.php

class Event extends DataObject
{
	static $db = array (
		'EventName' => 'Text',
		'Description' => 'Text',
		'Date' => 'Date',
		'Time' => 'Text',
		'Venue' => 'Text',
		'ContactNumber' => 'Text'
	);
...
...

mysite/code/EventPage.php

class EventPage_Controller extends Page_Controller 
{
	function Event() 
	{
		return DataObject::get(
			'Event',
			null,
			'Date ASC',
			null
		);
	}

Many thanks in advance!

Avatar
bartvanirsel

Community Member, 96 Posts

12 October 2010 at 7:37am

Hi,

i guess you can do this by just checking if date has passed in the query which will be generated by silverstripe through the DataObject get method.

something like:

return DataObject::get('Event', "Date > NOW()", 'Date DESC');

Avatar
Bauer-CTU

Community Member, 10 Posts

12 October 2010 at 9:47pm

Thanks bart. It works a treat!
I think I was over-thinking it and expecting it to be more complicated! :-)