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've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Archive /

Our old forums are still available as a read-only archive.

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

error saving content on HasManyComplexTableField


Go to End


949 Views

Avatar
erwanpia

Community Member, 63 Posts

29 September 2008 at 8:53pm

Edited: 29/09/2008 8:55pm

Hi I'm getting the Error Saving Content on a page with a HasManyComplexTableField. I can't get to the error and have flushed DB and reviewed syntax 10 times, has anyone a hint on this ? Error gets away when I comment out the HasManyComplexTableField in ConfigPage ?

Thanks guys

=======UPDATE : ERROR FOUND : typo as usual - code below is now correct ====

mysite/code/ConfigPage.php

<?php

class ConfigPage extends Page {
	
	static $icon = "tutorial/images/treeicons/news";
	static $db = array(

	);
	static $has_one = array( 'Photo1' => 'Image'   );	
	 static $has_many = array(
      'Customers' => 'Customer'
   ); 
     static $defaults = array(    'ShowInMenus' => false);
   
   function getCMSFields() {
   $fields = parent::getCMSFields();
   	$fields->addFieldToTab('Root.Content.Main', new ImageField('Photo1'), 'Content');
	 
	
	  $tablefield = new HasManyComplexTableField(
         $this,
         'Customers',
         'Customer',
         array(
	    'Name' => 'Name',
	    'Description' => 'Description',
	    'Url' => 'Url'
         ),
         'getCMSFields_forPopup'
      );
       $tablefield->setParentClass('ConfigPage');
      $tablefield->setAddTitle( 'Customer' );
 
      $fields->addFieldToTab( 'Root.Content.Customer', $tablefield );
 
	
	return $fields;
   }

}

class ConfigPage_Controller extends ContentController {
	function init() {
		parent::init();
	}

}
?>

mysite/code/Customer.php

<?
class Customer extends DataObject {
 
   static $db = array(
      'Name' => 'Text',
      'Description' => 'Text',
      'Url' => 'Text'
   );
      static $has_one = array(
      'MyConfig' => 'ConfigPage'
   ); 
 
   function getCMSFields_forPopup() {
      $fields = new FieldSet();
      $fields->push( new TextField( 'Name' ) );
      $fields->push( new TextField( 'Description' ) );
      $fields->push( new TextField( 'Url' ) );
      return $fields;
   }
 
}?>