7913 Posts in 1355 Topics by 930 members
DataObjectManager Module
SilverStripe Forums » DataObjectManager Module » Custom filter to show only <18yo members
Discuss the DataObjectManager module, and the related ImageGallery module.
Moderators: martimiz, UncleCheese, Howard, Sean, Ryan M., biapar, Willr, Ingo, swaiba, simon_w
|
Page:
1
|
Go to End | |
| Author | Topic: | 1394 Views |
-
Custom filter to show only <18yo members

13 January 2010 at 3:33pm Last edited: 13 January 2010 3:33pm
Event hasMany Registration hasOne Member
// Registrations
$regTablefield = new DataObjectManager(
$this,
'Registration',
'Registration',
array(
'Member.Nickname' => 'Username',
'Member.FirstName' => 'First Name',
'Member.Surname' => 'Surname',
'Member.DateOfBirth' => 'DOB',
'Paid' => 'Paid'
),
null,
"`EventID` = '$this->ID'"
);
$regTablefield->setAddTitle( 'Attendee' );
$fields->addFieldToTab( 'Root.Content.Registrations', $regTablefield );DataObjectManager supports drop-down custom filters, but as far as I can tell this will simply filter exact matches. What I'd like to be able to do is have a filter for example that will list all Registrations in which the Member will be less than 18 at the time of the event (using Member.DateOfBirth and Event.StartDate).
Is this possible using DataObjectManager?
-
Re: Custom filter to show only <18yo members

22 March 2010 at 12:52pm Last edited: 24 March 2010 7:02am
You can use DataObject::get() to retrieve a set of filtered results then use toDropDownMap().
$product_dom->setFilter(
'Category',
'Filter by category',
DataObject::get(...params...)->toDropDownMap('Name', 'Name')
);Edit: Some good advice from UC: Check get() returns something first rather than blindly passing the results to toDropDownTable() or there could be fatal consequences (for your CMS, not you).
| 1394 Views | ||
|
Page:
1
|
Go to Top |


