Jump to:

3373 Posts in 998 Topics by 712 members

Data Model Questions

SilverStripe Forums » Data Model Questions » Unsetting DataObjects when iterating through a DataObjectSet

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

Page: 1
Go to End
Author Topic: 2150 Views
  • MarcusDalgren
    Avatar
    Community Member
    288 Posts

    Unsetting DataObjects when iterating through a DataObjectSet Link to this post

    Hello.

    I have been following the tutorials and I am using one of the functions listed to get the latest news items on different pages.
    However, I only want to show the news items that the user has access to. Figuring out if the current item could be viewed was really easy but getting rid of the offending news items proved to be harder.

    I ended up creating a new DataObjectSet and putting the DataObjects that the user can view in the new set and then returning that, but I am thinking that there must be an easy way to unset a DataObject during a foreach loop but I just can't find it.

    Also is there an easy way to restrict a DataObject::get() to only get the records that the user is allowed to view so I don't have to filter after the fact?

    Kindly, Marcus.

  • Willr
    Avatar
    Forum Moderator
    5462 Posts

    Re: Unsetting DataObjects when iterating through a DataObjectSet Link to this post

    DataObject::get() to only get the records that the user

    Not well, I always just do a foreach loop after it if($object->can('View')) ...;

    To unset it can't you just call remove? I don't think PHP will complain about concurrency errors with the following

    foreach($pages as $page) {
    $pages->remove($page);
    }

    2150 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.