22400 Posts in 6752 Topics by 2748 members
General questions about getting started with SilverStripe that don't fit in any of the categories above.
|Go to End|
12 September 2009 at 11:34am
I am trying to retrieve an object that has a category the same as the page title. I am using the code
$MFoptions = DataObject::get_one("MFCategory", 'MFTitle='.$this->title);
but this errors with the message [User Error] Couldn't run query: SELECT `MFCategory`.*, `MFCategory`.ID, if(`MFCategory`.ClassName,`MFCategory`.ClassName,'MFCategory') AS RecordClassName FROM `MFCategory` WHERE (MFTitle=counselling) LIMIT 1 Unknown column 'counselling' in 'where clause'
So I get it is looking for a column called counselling cause it is not in '' but when I put it in '' ie $MFoptions = DataObject::get_one("MFCategory", 'MFTitle='.'$this->title');
it interprets the $this->title as a literal string. Please help, I know this must be simple to fix but I just can't work it out.
Thanks as always
12 September 2009 at 9:48pm
You're close to the solution. The Title has to be wrapped in quotes for MySQL, but you're doing it wrong. Should be:
$MFoptions = DataObject::get_one("MFCategory", "MFTitle='" . $this->title . "'");
Or maybe better to read:
$title = $this->title;
$MFoptions = DataObject::get_one("MFCategory", "MFTitle='$title'");
13 September 2009 at 11:28am
Thanks for this. I knew it must be something along these lines but the combinations I had tried just didn't work
|Go to Top|