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 forum.silverstripe.org 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   5118 Views

Avatar
Howard

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:

ProductsHolder.php

<?php
class ProductsHolder extends Page {
    static $allowed_children = array( 'Product' );
}
 
class ProductsHolder_Controller extends Page_Controller {
}
?>

Product.php

<?php
 
class Product extends DataObject {
 
   static $db = array(
      'Name' => 'Varchar',
      'ProductCode' => 'Varchar',
      'Description' => 'Text'
   );
 
   static $has_one = array(
      'Category' => 'Category'
   );
 
   static $searchable_fields = array(
      'Name',
      'ProductCode' 
   );
   
   }


?>

and MyCatalogAdmin.php
<?php

class MyCatalogAdmin extends ModelAdmin {
   
  protected static $managed_models = array(
      'Product'
   );
 
  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!

Avatar
jam13

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.