2014-11-23 3 views
1

проходит по параметрам GET АЯКСА, мой URL выглядит следующим образом:Symfony Аякс маршрутизации Получ

example.com/autocamplete?term=string 

добавить маршрут для этого:

autocomplete: 
    path:  /autocomplete?term={term} 
    defaults: { _controller: CatalogWebBundle:Default:autocomplete } 

Но что-то не так с моим маршрутом, потому что я получить ошибку:

GET http://127.0.0.1:8000/autocomplete?term=sdfsd 500 (Internal Server Error) 

Как переписать мой маршрут на ajax получить патаметры?

JS является:

<script type="text/javascript"> 
    $(function() { 

     //autocomplete 
     $("#search").autocomplete({ 
      source: "\/autocomplete", 
      minLength: 1 
     }); 

    }); 
</script> 

ответ

3

Установить FOSJsRoutingBundle, создать правильный маршрут, как это неправильно в вашем вопросе.

Таким образом, вы должны сделать что-то вроде этого:

добавить расслоение JS (может быть в базовом шаблоне для глобального использования):

<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script> 
<script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script> 

настроить маршрутизацию (без QS):

autocomplete: 
    path:  /autocomplete 
    defaults: 
     _controller: CatalogWebBundle:Default:autocomple 
    options: 
     expose: true 

сконфигурировать ваши JS:

<script type="text/javascript"> 
    $(function() { 

     //autocomplete 
     $("#search").autocomplete({ 
      source: Routing.generate('autocomplete', { 'term': value });, 
      minLength: 1 
     }); 

    }); 
</script> 
+0

Я не использую ветку, но использую шаблон php, чтобы переписать этот ' 'to php? – Wizard

+0

@TomasLiachovskis взгляните на [эту страницу документа] (http://symfony.com/doc/current/cookbook/templating/PHP.html) – xurshid29

0

помимо выше версии (с использованием ФОС JS Routing), если вы «рендеринг» функциональных файлов JS без необходимости «динамической генерации или маршрутов» вы можете использовать более простой подход

{{ path('routeName', {'slug': slug}) }} 

Примечание : в вашем случае - создание поиска - это не сработает

Смежные вопросы