Jump to:

7940 Posts in 1543 Topics by 946 members

DataObjectManager Module

SilverStripe Forums » DataObjectManager Module » DOM for Pages - how to set ParentID upon write?

Discuss the DataObjectManager module, and the related ImageGallery module.

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

Page: 1
Go to End
Author Topic: 615 Views
  • KINKCreative
    Community Member
    56 Posts

    DOM for Pages - how to set ParentID upon write? Link to this post

    I am setting up a DOM for Articles under a Category page. When added via the DOM, I want the Articles to become children of the Category, and I will have them hidden from SiteTree. As they are added via the DOM, to set the ParentID to the ID of the Category and I need help with this.

    I tried this... but it's not working.

    class Article extends Page {

    static $db = array(
       'Subtitle' => 'Varchar(60)',
       'Summary' => 'Text',
       static $has_one = array(
          'Category' => 'Category'
       static $allowed_children = array('None');
       static $defaults = array(
          'ShowInMenus' => false,
          'ShowInSearch' => false
       function onBeforeWrite() {
          if(!$this->ID) {
             $this->ParentID = $this->Category()->ID;

    Should I use setParent()?

    I'm also wondering - the CategoryID (from $has_one) and ParentID will eventually be the same (once we figure it out), not sure if both are needed or if there's a way for DOM to seek ParentID and not need the $has_one reference.

  • UncleCheese
    4085 Posts

    Re: DOM for Pages - how to set ParentID upon write? Link to this post

    DOM is for managing DataObject subclasses -- not SiteTree. If you're looking for an alternative to the tree for managing your pages, you might check out my tutorial "Remodel Admin" on my blog.


    SilverStripe tips, tutorials, screencasts and more: http://www.leftandmain.com

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.