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.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Archive /

Our old forums are still available as a read-only archive.

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

Querying Database via a Class function from _config.php

Go to End

4 Posts   1955 Views


Community Member, 37 Posts

15 May 2008 at 9:34pm

I would like to shift the theme selection process to a Page in the CMS.
I have the following;

class Config extends Page {

static $db = array(
'Theme' => 'Text',

function get_current_theme() {
$result = DataObject::get_one('Config');
return $result->Theme;

The function returns the value of Theme if I call $get_current_theme from a template but if I call it from mysite/_config.php using


I get the following errors, which I assume are because I am ahead of the class construction of SS.

Warning: ClassInfo::dataClassesFor() no parents for Config in sapphire\core\ClassInfo.php on line 49

Warning: Invalid argument supplied for foreach() in sapphire\core\ClassInfo.php on line 50

Fatal error: DataObject::buildSQL: Can't find data classes (classes linked to tables) for Config in sapphire\core\model\DataObject.php on line 1334
Can I achieve the same DB query using the SQLQuery function? If so how, I can't work out the syntax from the doco or api pages.


Community Member, 501 Posts

16 May 2008 at 9:41pm

Edited: 16/05/2008 9:44pm

AFAIK you can only do


if you made get_current_theme() a static method.

See for example:

Be aware though that static vars/methods are tied to the class rather than to an instance of it.


Community Member, 37 Posts

17 May 2008 at 8:54am

Thanks for that.
I can get the get_current_theme() code to run, my issue is querying the Config table for the value of Theme.
At the very least what I want to do is "SELECT * FROM Config" and then get the value of Theme from the 1 row which is returned (as I only have one row..)

But how to do it from my Config.php class function without the errors listed on original post?


Community Member, 10 Posts

26 May 2008 at 9:17pm

just wondering if you go this working, cos i would like to be able to select a theme from inside the cms as well...

if you did could you post the code?