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.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

Moderators: martimiz, UncleCheese, Sean, biapar, Willr, Ingo, swaiba, simon_w

Validation/RequiredFields & DataObjectManger Module


3 Posts   1934 Views


Community Member, 1 Post

13 October 2009 at 4:21am

Dear Reader,

Let me first start with the fact that I am very new to SilverStripe. Before getting myself into all kind of troubles I started of reading the Tutorials, and heard about this Module for SilverStripe by a Colleague.

It all seemed to work fine, until i wondered how to do validating with the DataObjectManager_Popup Form. Some strange things seem to happen over there! We noticed some other people asked for a solution, but from my point of view there wasn't one yet.

First post i found: [url=]link 1[/url]
Second post i found: [url=]link 2[/url]

We worked on figuring how to make it work, and voila:

class Person extends DataObject {
   static $db = array(
      "FirstName" => "Varchar(40)",
      "LastName" => "Varchar(40)",
      "Gender" => "Enum('Man, Vrouw','Man')",
      "DateOfBirth" => "Date",
      "Description" => "HTMLText"

   static $has_one = array('PersonHolder' => 'PersonHolder');
   public function getCMSFields_forPopup(){
      $fieldSet = new FieldSet(
         new TextField('FirstName', 'Voornaam','','40'),
         new TextField('LastName', 'Achternaam', '','40'),
         new DropdownField('Gender', 'Geslacht', array('Man', 'Vrouw')),
         new CalendarDateField('DateOfBirth','Geboorte Datum'),
         new HtmlEditorField('Description','Beschrijving')      
      return $fieldSet;


class PersonHolder extends Page {

   static $db = array();
   static $has_many = array(
      "Persons" => "Person"
   public function getCMSFields(){
      $oDOM = new DataObjectManager(
            'FirstName' => 'Voornaam',
            'LastName' => 'Achternaam',
            'Gender' => 'Geslacht',
            'DateOfBirth' => 'Geboorte Datum',
            'Description' => 'Beschrijving'
      $oDOM->popupClass = 'PersonDataObjectManager_Popup';

      $fields = parent::getCMSFields();
      return $fields;

class PersonHolder_Controller extends Page_Controller {

class PersonDataObjectManager_Popup extends DataObjectManager_Popup {
   function __construct($controller, $name, $fields, $validator, $readonly, $dataObject) {
      parent::__construct($controller, $name, $fields, $validator, $readonly, $dataObject);
      $oVal = new RequiredFields(array('FirstName', 'LastName'));
      $this->validator = $oVal;


Community Member, 15 Posts

28 September 2010 at 9:54am

This was really helpful ... I was wondering if you found a way of having the popup maintain the data that was entered on the form when it was invalid?




Community Member, 66 Posts

18 January 2013 at 5:57am

Hi Mike,

Did you ever find a solution to this? I am having trouble finding a way to retain the data and it is causing major headaches.