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 /

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

Possible bug in DataObject::get_one

Go to End

3 Posts   1581 Views


Community Member, 25 Posts

1 July 2010 at 8:29am

Edited: 01/07/2010 8:30am

I am quite new to SS but I do believe that this time the problem is not completely in me.

I am trying to get a record from the database and load it into an object, the syntax looks like this:

if ($confirmKey = DataObject::get_one("ConfirmationCode", "ID = ".$member->ConfirmCodeID)) {
//confirmation is found, try to output it's data!
die(print_r($confirmKey, true));
else {
not found error message

The code actually goes to the first branch (which I believe means that the record is located) but the $confirmKey only contains empty/brand new ConfirmationCode object!
Output of that die method yields this:
ConfirmationCode Object ( 
 [destroyed] => 
 [record:protected] => Array ( 
   [ID] => 0 [ClassName] => ConfirmationCode 
   [RecordClassName] => ConfirmationCode 
  [changed:DataObject:private] => Array ( ) 
  [original:protected] => Array ( [ID] => 0 
  [ClassName] => ConfirmationCode 
  [RecordClassName] => ConfirmationCode ) 
  [components:protected] => 
  [brokenOnDelete:protected] => 
  [brokenOnWrite:protected] => 
  [componentCache:protected] => 
  [iteratorPos:protected] => 
  [iteratorTotalItems:protected] => 
  [failover:protected] => 
  [customisedObject:protected] => 
  [objCache:ViewableData:private] => Array ( ) 
  [class] => ConfirmationCode [extension_instances:protected] => Array ( ) 

What is the problem? I am getting desperate... same result when using get_by_id


Community Member, 279 Posts

11 July 2010 at 9:06pm

Did you check the database table if the properties are set?


Community Member, 78 Posts

13 July 2010 at 9:24am


Can you pass false to the third parameter of DataObject::get_one and see if that makes any difference? This will prevent get_one from using its cache, and force load from the database.