addRequiredInput(array( 'Filter' => array( 'region' => 'Id' ) )); return new \Workspace\Contract\Recurring($options, $requirement); } /** * A custom select list. * @param object|null $jobRecord * @param \Workspace\Utility\ServiceInputParams $contract * @return array */ public function executeJoinedSelectList($jobRecord, \Workspace\Utility\ServiceInputParams $contract) { $items = $this->em->createQuery( 'SELECT partial companyGroup.{id,name} ' . 'FROM Company\Entity\Group companyGroup ' . 'JOIN companyGroup.divisions divisions ' . 'JOIN divisions.companies company ' . 'WHERE IDENTITY(company.region) = :regionId ' . 'ORDER BY companyGroup.name ASC' ) ->setParameter('regionId', $contract->data->Filter['region']) ->getArrayResult(); $data = array(); $ids = array(); foreach ($items as $item) { if (isset($ids[$item['id']])) { continue; } $ids[$item['id']] = true; $data[] = array( 'value' => $item['id'], 'label' => $item['name'] ); } return $contract->success( 'List retrieved.', $data ); } }