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.

DataObjectManager Module /

Discuss the DataObjectManager module, and the related ImageGallery module.

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

Multiple has_many relationships for the same class


Reply


3 Posts   1082 Views

Avatar
Gene

Community Member, 41 Posts

19 October 2010 at 12:06pm

Does the DOM support the new has_many class.field syntax in 2.4? (http://open.silverstripe.org/ticket/4632)

I have been unable to get it to work properly.

Avatar
UncleCheese

Forum Moderator, 4096 Posts

19 October 2010 at 1:18pm

I wasn't aware that was ready yet. That's good to see.

I'm not sure there's anything to update, though. I think all of that is handled further upstream in the DataObject class. Can you give it a try and let me know how it goes?

---------------
Silverstripe tips, tutorials, screencasts, and more. http://www.leftandmain.com

Avatar
Gene

Community Member, 41 Posts

19 October 2010 at 1:26pm

I couldn't get it working. Here's what I have...

static $has_many = array(
      'PackagePromos' => 'Promo.Package',
      'FlightsPromos' => 'Promo.Flights',
      'BookingPromos' => 'Promo.Booking',
   );

function getCMSFields() {
      $fields = parent::getCMSFields();
      $fields->addFieldToTab('Root.Content.Package', new HasManyDataObjectManager(
         $this,
         'PackagePromos',
         'Promo'
      ));
//... other hasmanydoms

This throws an error on save.

I also tried replacing 'Promo' in the HasManyDom with 'Promo.Package' which seems more correct but the DOM throws an error in the constructor 'Bad Class to Singleton' - line 96. I think it needs to be split at the period at that location in order to create the class properly.