/** * First settings entries returned are more specific. * * @param User $user * * @return array */ private function getSettings(User $user) { $settings = []; /** @var UserSettings $userSettings */ $userSettings = $this->em->getRepository(UserSettings::class)->findOneBy(array('user' => $user)); if ($userSettings) { $settings[] = $userSettings->getDashboardSettings(); } foreach ($user->getGroups() as $group) { /** @var GroupSettings $groupSettings */ $groupSettings = $this->em->getRepository(GroupSettings::class)->findOneBy(array('group' => $group)); if ($groupSettings) { $settings[] = $groupSettings->getDashboardSettings(); } } return $settings; }