Метод Symfony Json для ответа JQuery (Select2 Ajax) - PullRequest
0 голосов
/ 14 марта 2019

Мои коды ниже. У меня есть ProductController для моих продуктов. На странице продукта у меня есть панель поиска Select2 Ajax, которая вызывает APIController. ProductController показывает все продукты (99K). Если я хочу выполнить фильтрацию по конкретному SKU, я могу найти и выбрать продукт. Но я не могу передать эту информацию в мою таблицу, которая находится в ProductController. Если я выбираю Продукт, он ничего не делает и не получает информацию.

ProductController показывает следующую информацию, как на изображении ProductController

ProductController показывает все продукты в базе данных, но ограничен 100 на страницу. Но чего я хочу добиться, так это того, чтобы при поиске какого-либо продукта на основе SKU моя таблица со всеми продуктами отображалась скрытой, а список продуктов из Select2 Ajax должен отображаться в режиме реального времени в виде таблицы. Но как мне этого добиться. Не могли бы вы помочь мне / помочь мне, как получить эти результаты или шаги, что мне нужно, чтобы получить результаты, что я хочу.

В моей панели отладки Symfony я вижу, что я получаю определенный ответ JSON от API, но я не могу передать эту информацию обратно в мой ProductController и не показать ее в виде таблицы.

ProductController

/**
 * @Route("/product/all")
 */
public function getPage(Request $request)
{

    $products = $this->productRepository->getProducts();

    $query = $request->get('term');

    return $this->render(
        '@app_bar/Product/productList.twig',
        [
            'products' => $products,
        ]
    );
}

ApiController

/**
 * @Route("/api/search")
 */
public function viewActionSearch(Request $request)
{

    $query = $request->get('term');

    $result = [
        'results' => [],
    ];


    if ($query !== null){
        $products = $this->productRepository->searchProduct($query);

        $result['results'];

        foreach ($products as $product) {
            $result['results'][]     = [
                'id' => $product['id'],
                'text' => $product['name'],
            ];
        }

    } else {

        $products = $this->productRepository->pagination(1);
        foreach ($products as $entity) {
            $result['results'][] = [
                'id' => $entity['id'],
                'text' => $entity['name'],
            ];
        }
    }

    return new JsonResponse($result);    
}

Javascript

<script>
    $('.ajax').select2({
        ajax: {
            url: '/product/api/search',
            dataType: 'json',
        }
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...