Фильтр запросов API в Symfony - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь создать конечную точку, которая запрашивает список фильтров и выплевывает результаты. Приведенный ниже код отправляет все результаты обратно, но я пытаюсь создать что-то, где я могу использовать $ filter = moreno и запросы для этого.

Вот мой контроллер. Этот контроллер запрашивает все текущие сеансы

  /**
     * Get attendees in a session.
     *
     * @Get("/eventSession/{eventSessionId}/eventSession")
     *
     * @View(serializerGroups={"Default"})
     * @ApiDoc(
     *  output= {
     *      "class" = "array<KCM\ApiBundle\Contract\EventAttendee>",
     *      "groups" = {"Default"}
     *  },
     *  requirements={
     *    {
     *      "name"="eventSessionId",
     *      "dataType"="string",
     *      "requirement"="(\w|-)+",
     *      "description"="Event Session ID"
     *    },
     *    {
     *      "name"="filter",
     *      "dataType"="string",
     *      "requirement"="(\w|-)+",
     *      "description"="Value to search for within fields"
     *    }
     *  }
     * )
     *
     * @Secure(roles="api.event_admin")
     */
    public function getEventSessionAttendeeAction(request $request, 
$eventSessionId)
    {

        $filterName = 'filter';

        $searchFields = [
            'o.email',
            'a.email',
            'a.firstName',
            'a.lastName',
            'a.barcode1',
            'a.barcode2',
            'a.id',
            'o.id'
        ];

        try {
          /** @var ApiEntity\EventSession $eventSession */
          $eventSession = $this->get('doctrine')- 
 >getRepository('KCMApiBundle:EventSession')- 
  >findOneById($eventSessionId);
          $eventAttendees = $this- 
  >getEventSessionAttendeesCheckedIn($eventSession);

            if ($eventAttendees) {

                return $this->getApi()->serialize($eventAttendees);
            }

            return new Response(null, Response::HTTP_NOT_FOUND);
        } catch (\Exception $e) {
            $this->get('logger')->error($e->getMessage());
        }
    }

Я хочу добавить параметр фильтра, чтобы я мог запрашивать результаты по имени, фамилии, номеру телефона и т. Д.

...