Я пытаюсь создать автоматическое полное текстовое поле в symfony с AbstractType Form, которое получает данные из базы данных, и я хочу, чтобы он дал мне предложения о том, что я вводил в качестве входных данных, я попробовал несколько сторонних плагинов для этого, но не работал, может я пропустил некоторые процедуры установки. вот ссылка плагина, я использовал форму git после выполнения всех этапов установки, это дает мне текстовое поле. есть ли другой способ создать автоматическое полное текстовое поле, вот мой код для FormType
$builder->add('autoText', 'autocomplete', array(
'class' => 'MyBundle:Demo',
));
мой шаблон html.twig:
<div class="col-md-10">
[{% for auto in results -%}
{{ {id: auto.id, label: auto.name, value: auto.name}|json_encode|raw }}
{%- if not loop.last %},{% endif -%}
{%- endfor %}]
</div>
<!-- js -->
{% javascripts
'js/jquery.js'
'js/jquery-ui.js'
'@PUGXAutocompleterBundle/Resources/public/js/autocompleter-jqueryui.js'
%}
{% endjavascripts %}
{% javascripts %}
<script type="text/javascript">
$('#autoText').autocompleter({url_list: '/auto_search', url_get: '/auto_get/'});
</script>
{% endjavascripts %}
мой DemoController
Public class DemoController extends Controller{
//....
public function searchAutoAction(Request $request) {
$q = $request->get('AutoText');
$em = $this->getDoctrine()->getManager();
$results = $em->getRepository('MyBundle:Demo')->findLikeName($q);
return array('results' => $results);
}
public function getAutoAction($id) {
$em = $this->getDoctrine()->getManager();
$auto = $em->getRepository('MyBundle:Demo')->find($id);
return new Response($auto->getName());
}
.....//
}
route.yml
auto_search:
path: /auto_search/
defaults: { _controller:MyBundle:Demo:searchAuto }
auto_get:
path: /auto_get/
defaults: { _controller:MyBundle:Demo:getAuto }
Прочтите эту страницу документа и добавьте библиотеки js следующим образом:
{% javascripts
'js/jquery.js'
'js/jquery-ui.js'
'@PUGXAutocompleterBundle/Resources/public/js/autocompleter-jqueryui.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}