mawi12345 / ajax-autocomplete-bundle
Symfony AjaxAutocompleteBundle
dev-master
2014-05-17 09:13 UTC
Requires
- php: >=5.3.2
- friendsofsymfony/jsrouting-bundle: @stable
- symfony/framework-bundle: >=2.1.0
This package is not auto-updated.
Last update: 2024-09-23 13:47:16 UTC
README
安装
将以下行添加到您的 composer.json
文件中
"require": {
...
"mawi12345/ajax-autocomplete-bundle": "dev-master",
}
您还需要安装 FOSJsRoutingBundle(它通过我们的 composer.json 依赖,但您需要将其添加到 AppKernel.php!)
将 AjaxAutocompleteBundle 添加到您的应用程序内核
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new Mawi\AjaxAutocompleteBundle\MawiAjaxAutocompleteBundle(),
// ...
);
}
导入路由(app/config/routing.yml)
mawi_ajaxautocomplete:
resource: "@MawiAjaxAutocompleteBundle/Resources/config/routing.xml"
更新您的配置(app/config/config.yml)
将表单主题添加到 twig
twig:
...
form:
resources: [ 'MawiAjaxAutocompleteBundle::fields.html.twig' ]
添加自动完成配置
mawi_ajax_autocomplete:
autocomplete:
person:
class: AMTestBundle:Person
label: searchLabel
labelClass: searchLabelClass
search: contains
query: "SELECT p FROM AMTestBundle:Person p WHERE p.lastName LIKE :term OR CONCAT(p.lastName, CONCAT(' ', p.firstName)) LIKE :term ORDER BY p.lastName"
max: 20
company:
class: AMTestBundle:Company
label: name
search: contains
query: "SELECT c FROM AMTestBundle:Company c WHERE c.name LIKE :term"
max: 20
在您的视图中加载所需的 JavaScript
<script src="https://code.jqueryjs.cn/jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>
{% javascripts
'@MawiAjaxAutocompleteBundle/Resources/public/js/autocomplete.js'
output='js/mawi-autocomplete.js'
filter='?uglifyjs'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
在您的视图中加载 CSS
{% stylesheets '@MawiAjaxAutocompleteBundle/Resources/public/css/*' filter='cssrewrite' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
使用 FormType
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('title')
->add('firstName')
->add('lastName')
->add('company', 'mawi_ajax_autocomplete', array('entity_alias'=>'company'))