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've moved the forum!

Please use for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Archive /

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

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

ModelAdmin user error

Go to End

2 Posts   5045 Views


Community Member, 215 Posts

16 December 2008 at 12:35am

Edited: 16/12/2008 12:44am

Hi guys,

I am looking into how to use modeladmin now that there is some documentation to it.

I have done a clean install from the 2.3 branch then created 3 files in mysite/code:


class ProductsHolder extends Page {
    static $allowed_children = array( 'Product' );
class ProductsHolder_Controller extends Page_Controller {


class Product extends DataObject {
   static $db = array(
      'Name' => 'Varchar',
      'ProductCode' => 'Varchar',
      'Description' => 'Text'
   static $has_one = array(
      'Category' => 'Category'
   static $searchable_fields = array(


and MyCatalogAdmin.php

class MyCatalogAdmin extends ModelAdmin {
  protected static $managed_models = array(
  static $url_segment = 'products'; // will be linked as /admin/products
  static $menu_title = 'My Product Admin';


After db build I log into the admin and am able to select "My Product Admin" which then appears to load fine until I click on "Create 'Product'" it shows an error message:

Error: "Bad class to singleton() - Category" at line 263 of /Users/Howard/Desktop/localhost/jdmnz/sapphire/core/Core.php

the line from core.php in question reads:

if(!class_exists($className)) user_error("Bad class to singleton() - $className", E_USER_ERROR);

Any help would be greatly appreciated!


121 Posts

16 December 2008 at 1:38am

Think your problem might be here:

static $allowed_children = array( 'Product' );

Product is not derived from SiteTree, so I don't think this will work.