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.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

Bug in removeDuplicates()?


Reply


3 Posts   995 Views

Avatar
MarijnKampf

Community Member, 164 Posts

3 February 2010 at 5:28am

I'm combining two DataObjectSets and I want only the unique entries.

I thought it was an error in my code, but it appears to me that removeDuplicates() actually removes all entries. I'm not quite sure whether it's a bug as I may have something else wrong in the code. I've written a quick test script, can someone please verify whether this is a bug or an error on my side?

      $one = new DataObject();
      $one->ID = 1;
      $one->Title = "One";
      $two = new DataObject();
      $two->ID = 2;
      $two->Title = "Two";

      $test = new DataObjectSet();
      $test->addWithoutWrite ($one);
      $test->addWithoutWrite ($two);
      $test->addWithoutWrite ($one);

      Debug::show($test); // Shows 1 2 1
      Debug::show($test->removeDuplicates()); // Empty.

Avatar
Hamish

Community Member, 712 Posts

3 February 2010 at 11:41am

removeDuplicates() doesn't return anything.

try:

...
Debug::show($test); // Shows 1 2 1
$test->removeDuplicates();
Debug::show($test); // Shows 1 2

Avatar
MarijnKampf

Community Member, 164 Posts

3 February 2010 at 9:05pm

Thank you Hamish, should have read the docs better. Clearly another case of user error :)