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.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

Retreiving an object whose category is the same as the page title


Reply


3 Posts   724 Views

Avatar
mschiefmaker

Community Member, 187 Posts

12 September 2009 at 11:34am

Hi

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

MM

Avatar
banal

Community Member, 901 Posts

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'");

Avatar
mschiefmaker

Community Member, 187 Posts

13 September 2009 at 11:28am

Hi Banal

Thanks for this. I knew it must be something along these lines but the combinations I had tried just didn't work

Cheers

MM