Jump to:

17452 Posts in 4473 Topics by 1971 members

Archive

SilverStripe Forums » Archive » ComplexTableField not getting related object values

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

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

Page: 1
Go to End
Author Topic: 1458 Views
  • ScottiouS
    Avatar
    Community Member
    54 Posts

    ComplexTableField not getting related object values Link to this post

    I have a complextablefield in the backend CMS. This pagetype has a has_many relation to a DataObject. This DataObject has a has_one relation to a groupID.

    The idea is to display the list of objects related to the particular page (which works nicely) and also show which Group each object belongs to. I can show the GroupID but that doesn't mean much to the end user. So in an attempt to show the Group.Title I have tried accessing Group.Title but this returns an SQL error as it does not fetch the Group table. I also Tried the following...

    On the RepositoryPage.php:

    function getCMSFields() {
    $fields = parent::getCMSFields();

    $tablefield = new HasManyComplexTableField(
    $this,
    'GBFiles',
    'GBFile',
    array(
             'Name' => 'File Name',
             'FileSize' => 'File Size',
             'GroupTitle' => 'Group Restriction'
    ),
    'getCMSFields_forPopup',
    "GBFile.MyRepositoryPageID = {$this->ID}" // Source filter (WHERE clause in SQL)
    );
    $tablefield->setAddTitle( 'a file' );
       
    $tablefield->relationAutoSetting = true;

    $fields->addFieldToTab( 'Root.Content.Files', $tablefield );

    return $fields;
    }

    And then on the object itself:

       function getGroupTitle() {
          //return $this->Group->Title();
          return "widget group";
       }

    This "should" currently return "widget group" for each row of the table but it returns nothing. It does however pickup the function is there becuase if I remove this function I get an error.

    What I am missing here?

    1458 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.