예제 #1
0
 /**
  * {@inheritdoc}
  */
 public function buildResponse(AutocompleteResults $results, AutocompleteContextInterface $context)
 {
     $array = [];
     $property = $context->getParameter('autocomplete');
     $accessor = new PropertyAccessor();
     foreach ($results as $id => $result) {
         if ($accessor->isReadable($result, $property)) {
             $array[] = $accessor->getValue($result, $property);
         }
     }
     return new JsonResponse($array);
 }
예제 #2
0
 /**
  * {@inheritdoc}
  */
 public function buildResponse(AutocompleteResults $results, AutocompleteContextInterface $context)
 {
     $data['results'] = [];
     $templateResult = $context->getParameter('select2_template_result');
     $templateSelection = $context->getParameter('select2_template_selection');
     foreach ($results as $id => $result) {
         $data['results'][] = ['id' => $id, 'text' => $this->renderSelect2Item($id, $result, $templateResult), 'selection_text' => $this->renderSelect2Item($id, $result, $templateSelection)];
     }
     if ($max = $context->getParameter('max_results', false)) {
         $data['pagination'] = ['more' => $results->count() == $max];
     }
     return new JsonResponse($data);
 }
 /**
  * {@inheritdoc}
  */
 public function buildResponse(AutocompleteResults $results, AutocompleteContextInterface $context)
 {
     $accessor = new PropertyAccessor();
     $data['results'] = [];
     $property = $context->getParameter('autocomplete');
     foreach ($results as $id => $result) {
         if ($accessor->isReadable($result, $property)) {
             $value = $accessor->getValue($result, $property);
             $data['results'][] = ['id' => $value, 'text' => $value];
         }
     }
     if ($max = $context->getParameter('max_results', false)) {
         $data['pagination'] = ['more' => $results->count() == $max];
     }
     return new JsonResponse($data);
 }
 /**
  * orderBy.
  *
  * @param QueryBuilder                 $qb
  * @param AutocompleteContextInterface $context
  */
 protected function orderBy(QueryBuilder $qb, AutocompleteContextInterface $context)
 {
     $alias = $qb->getRootAliases()[0];
     $orderBy = $context->getParameter('order_by');
     if (!$orderBy) {
         return;
     }
     if (is_string($orderBy)) {
         $orderBy = [$orderBy];
     }
     foreach ($orderBy as $orderByField => $orderByDir) {
         if (is_int($orderByField)) {
             $orderByField = $orderByDir;
             $orderByDir = null;
         }
         $qb->addOrderBy("{$alias}.{$orderByField}", $orderByDir);
     }
 }