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 /

Get element by DataObject::get ?


2 Posts   1216 Views


Community Member, 180 Posts

7 June 2010 at 8:06pm

Edited: 07/06/2010 8:41pm


simple problem
how to get title from DataObject::get ?

   function a() {
      $x = DataObject::get("SiteTree");
      return $x->Title;

doesnt work


   function a() {
      $x = DataObject::get("SiteTree");
      foreach($x as $y) {
         echo '<p>' . $y->Title . ' ' . $y->URLSegment . '</p>';


Forum Moderator, 5513 Posts

8 June 2010 at 10:03pm

Explaination - DataObject::get returns a set. When you have a set of objects you can't call methods, fields on the set since they exist on the objects in the set and not the set itself.

DataObject::get('SiteTree'); - returns a set of all SiteTree objects (pages)
DataObject::get_one('SiteTree'); - returns a object - the first SiteTree object
DataObject::get_by_id('SiteTree', $id); - returns a object - the SiteTree object with the ID = $id;

Hope that helps.