3066 Posts in 866 Topics by 648 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 5746 Views |
-
Issue with DataObject:get and ParentID

16 January 2009 at 4:47pm Last edited: 16 January 2009 4:48pm
Hey folks!
I found a great code snippet here written by Sam which I have pinched and am trying to modify slightly:
http://www.silverstripe.org/archive/show/117318Here's what I'm doing with it:
$url = $this->ParentURLSegment;
$parent = DataObject::get_one('SiteTree', "`URLSegment` = '$url'");
return DataObject::get("SiteTree", "ParentID = $parent->ID", "", "", "3");$url is a Varchar and I set it in the CMS in a text field, it has a default value of "home".
The problem is that when I use $url to define my URLSegment, I have a strange issue with ParentID:
Silverstripe tries to execute SQL queries containing this:
WHERE (ParentID = )
i.e the ParentID is nothing.I can echo $url and check it in the database itself, and it is the URLSegment I want it to be (home).
When I use a straight string instead of $url - it works perfectly!
EG:
$url = $this->ParentURLSegment;
$parent = DataObject::get_one('SiteTree', "`URLSegment` = 'home'");
return DataObject::get("SiteTree", "ParentID = $parent->ID", "", "", "3");When the code gets to:
return DataObject::get("SiteTree", "ParentID = $parent->ID", "", "", "3");
Using $url $parent->ID is nothing (EG WHERE (ParentID = )
Using "home" $parent->ID is correct (EG WHERE (ParentID = 3124)
I hope that is clear enough, its driving me up the wall!
I'm very happy to provide any additional information.
Thanks guys, I appreciate any help.
-
Re: Issue with DataObject:get and ParentID

18 January 2009 at 12:28pm
There was nothing wrong with the code, it fixed itself after a reboot..
I have another issue though
$items isn't an object? (I thought DataObject::get returns a DataObjectSet?)
$parent = DataObject::get_one('SiteTree', "`URLSegment` = '$url'");
$items = DataObject::get("SiteTree", "ParentID = $parent->ID", "", "", "4");
$items->toArray();Whenever I try to apply any method applicable to a DataObjectSet ($items->First, ->Last(), ->Count() etc etc) I get a:
Call to a member function toArray() on a non-object error.By assigning my get to $items - what have I done that was so bad?
I can't do this either: (I was trying to get around having to assign the returned data to a var)
DataObject::get("SiteTree", "ParentID = $parent->ID", "", "", "4")->Count();Any takers?
Thanks guys
-
Re: Issue with DataObject:get and ParentID

18 January 2009 at 2:09pm
aj sorted my ridiculous questions out via IRC, much appreciated, sorry for the bother ;)
-
Re: Issue with DataObject:get and ParentID

25 February 2010 at 5:00am
hi chrisrae,
can you please explain how you solved the DataObject::get toArray() problem?
Carsten.
| 5746 Views | ||
|
Page:
1
|
Go to Top |


