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.

Archive /

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

Moderators: martimiz, Sean, biapar, Willr, Ingo

ModelAdmin user error


Go to End
Reply


2 Posts   3801 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.