Ajax маршрутизация с Symfony - PullRequest
0 голосов
/ 06 июня 2018

Я использую Symfony и Twig и пытаюсь перенаправить к существующей функции контроллера, используя ajax.Маршрут, по которому я пытаюсь добраться, кажется, добавлен к текущему маршруту (странице), который вызывает ajax.Что вызывает это и что я делаю не так?Я промежуточный в этом.Заранее спасибо за ваши усилия.

Ajax выглядит так:

    $.ajax({url: "{{ path('material-stock_check') }}/" + quoteRing.materialId + "/" + quoteRing.gaugeId + "/" + decimal, success: function (results) {
            if (results.length === 0) {
                quoteRing.findStripWidthAlternates();

            }
        }});

, а контроллер выглядит как

    /**
 * Check if the strip width is in the Inventory
 * @Route("/check/{materialId}/{gaugeId}/{decimal}", defaults={"materialId" = 0, "gaugeId" = 0, "decimal" = 0}, name="material-stock_check")
 * @Method("GET")
 */
public function checkStripWidthAction (Request $request, $materialId, $gaugeId, $decimal)
{
    $em = $this->getDoctrine()->getManager();

    $materialStocks = $em->getRepository('UniflyteBundle:MaterialStock')->findAllByParams(['widthDecimal' => $decimal, 'materialId' => $materialId, 'gaugeId' => $gaugeId]);

    if ($request->isXmlHttpRequest()) {
        if (null === $materialStocks) {
            return new JsonResponse('failure');
        }
        $results = [];
        foreach ($materialStocks as $result) {
            $results[] = [
              'gaugeId'    => $result->getGauge()->getId(),
              'materialId' => $result->getMaterial()->getId()
            ];
        }

        return new JsonResponse($results);
    }
}

Когда вызывается AJAX, я получаю

No route found for "GET /uniflyte/quote-ring/new/%7B%7B%20path('material-stock_check')%20%7D%7D/93/347/3.45" (from "http://localhost:8088/uniflyte/quote-ring/new/rolled-ring")

Ajax-маршрут выглядит добавленным к существующему маршруту.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Кажется, {{путь (...)}} не оценивается веткой, как сказал @Omar Alves.

попробуйте, объявите переменную в вашем файле ветки

<script>
    var url = '{{ path("material-stock_check") }}';
</script>

, а затем использовать его

0 голосов
/ 07 июня 2018

Вы объявляете путь в файле маршрута

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...