PHP code example of tetranz / select2entity-bundle
1. Go to this page and download the library: Download tetranz/select2entity-bundle library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tetranz / select2entity-bundle example snippets
$bundles = [
// ...
Tetranz\Select2EntityBundle\TetranzSelect2EntityBundle::class => ['all' => true]
];
$builder
->add('country', Select2EntityType::class, [
'multiple' => true,
'remote_route' => 'tetranz_test_default_countryquery',
'remote_params' => [], // static route parameters for request->query
'class' => '\Tetranz\TestBundle\Entity\Country',
'primary_key' => 'id',
'text_property' => 'name',
'minimum_input_length' => 2,
'page_limit' => 10,
'allow_clear' => true,
'delay' => 250,
'cache' => true,
'cache_timeout' => 60000, // if 'cache' is true
'language' => 'en',
'placeholder' => 'Select a country',
'query_parameters' => [
'start' => new \DateTime(),
'end' => (new \DateTime())->modify('+5d'),
// any other parameters you want your ajax route request->query to get, that you might want to modify dynamically
],
// 'object_manager' => $objectManager, // inject a custom object / entity manager
])
use Tetranz\Select2EntityBundle\Form\Type\Select2EntityType;
$builder
->add('country', Select2EntityType::class, [
'multiple' => true,
'remote_route' => 'tetranz_test_default_countryquery',
'class' => '\Tetranz\TestBundle\Entity\Country',
'transformer' => '\Tetranz\TestBundle\Form\DataTransformer\CountryEntitiesToPropertyTransformer',
]);
$data[] = array(
'id' => $country->getId(),
'text' => $country->getName().' ('.$country->getContinent()->getName().')',
);
$builder
->add('tags', Select2EntityType::class, [
'remote_route' => 'tetranz_test_tags',
'class' => '\Tetranz\TestBundle\Entity\PostTags',
'text_property' => 'name',
'multiple' => true,
'allow_add' => [
'enabled' => true,
'new_tag_text' => ' (NEW)',
'new_tag_prefix' => '__',
'tag_separators' => '[",", " "]'
],
]);
$builder
->add('tags', Select2EntityType::class, [
...
'allow_add' => [
...
'tag_separators' => '[",", ""]' // No Space here
],
]);
$builder
->add('firstName', TextType::class)
->add('lastName', TextType::class)
->add('state', EntityType::class, array('class' => State::class))
->add('county', Select2EntityType::class, [
' 'allow_clear' => false,
'req_params' => ['state' => 'parent.children[state]'],
'property' => 'name',
'callback' => function (QueryBuilder $qb, $data) {
$qb->andWhere('e.state = :state');
if ($data instanceof Request) {
$qb->setParameter('state', $data->get('state'));
} else {
$qb->setParameter('state', $data['state']);
}
},
])
->add('city', Select2EntityType::class, [
'
/**
* @param Request $request
*
* @Route("/autocomplete", name="ajax_autocomplete")
*
* @return Response
*/
public function autocompleteAction(Request $request)
{
// Check security etc. if needed
$as = $this->get('tetranz_select2entity.autocomplete_service');
$result = $as->getAutocompleteResults($request, YourFormType::class);
return new JsonResponse($result);
}
->add('contry', Select2EntityType::class, [
'remote_route' => 'country_select2_query',
'autostart' => false,
])