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 /

SS3 has_many relations


Reply


557 Views

Avatar
zenmonkey

Community Member, 528 Posts

25 July 2012 at 3:45am

I'm having a little trouble understanding how the new GridField replaces some of the old interfaces. I'm trying to manage a $has_many relation on a page but when I create a new record using the GridField it doesn't automatically create the relation (just shows a drop down)

My DataObject Looks like this

class FAQ extends DataObject {

   

   static $db = array(
      'Question' => 'Varchar',
      'Answer' => 'HTMLText'
   );
   
   static $has_one = array (
      'FaqPage' => 'FaqPage'
   );
   
   static $summary_fields = array(
      'Question' => 'Question',
      'Answer' => 'Answer'
   );   

   
}


and the page looks like

class FaqPage extends Page {

   /**
    * Static vars
    * ----------------------------------*/
   
   static $description = 'Holds Frequently Asked Questions';

   /**
    * Data model
    * ----------------------------------*/

   static $has_may = array (
      'FAQs' => 'FAQ'
   );      

   /**
    * Common methods
    * ----------------------------------*/

    public function getCMSFields() {
      
       $fields = parent::getCMSFields();
      
       $FAQ = FAQ::get()->filter(array('FaqPageID' => $this->ID));
      
       $FAQField = new GridField("FAQs", "Frequently Asked Question", $FAQ, GridFieldConfig_RelationEditor::create());
      
      
      
       $fields->addFieldToTab("Root.FAQs",$FAQField);
      
       return $fields;
      
    }

   
}


Not sure what I'm missing and the documentation doesn't appear to be clear

Thanks