gregwar / form-bundle
Provides the "entity_id" type (read "entity identifier")
Installs: 411 724
Dependents: 2
Suggesters: 0
Security: 0
Stars: 64
Watchers: 6
Forks: 27
Open Issues: 5
Requires
- doctrine/orm: ~2.2,>=2.2.3
- symfony/form: ~2.3
- symfony/property-access: ~2.3
- symfony/symfony: ~2.3
- symfony/validator: ~2.3
Requires (Dev)
- doctrine/doctrine-bundle: ~1.2
- symfony/twig-bundle: ~2.3
This package is auto-updated.
Last update: 2024-10-24 05:09:34 UTC
README
GregwarFormBundle
provides the form type "entity_id"
Installation
To install GregwarFormBundle
, run composer require gregwar/form-bundle
.
Then, register the bundle in the application kernel :
<?php // app/AppKernel.php //... public function registerBundles() { $bundles = array( ... new Gregwar\FormBundle\GregwarFormBundle(), ... ); ...
Finally, add the following block to the configuration :
# app/config/config.yml
gregwar_form: ~
Usage
The entity_id is a field that contains an entity id, this assumes you set up javascripts or any UI logics to fill it programmatically.
The usage look like the entity field type one, except that the query builder have to returns one unique result. One full example :
<?php //... $builder ->add('city', EntityIdType::class, array( 'class' => 'Project\Entity\City', 'query_builder' => function(EntityRepository $repo, $id) { return $repo->createQueryBuilder('c') ->where('c.id = :id AND c.available = 1') ->setParameter('id', $id); } )) ;
Note that if you don't provide any query builder, ->find($id)
will be used.
You can also chose to show the field, by passing the hidden
option to false
:
<?php //... $builder ->add('city', EntityIdType::class, array( 'class' => 'Project\Entity\City', 'hidden' => false, 'label' => 'Enter the City id' )) ;
Using the property
option, you can also use another identifier than the primary
key:
<?php //... $builder ->add('recipient', EntityIdType::class, array( 'class' => 'Project\Entity\User', 'hidden' => false, 'property' => 'login', 'label' => 'Recipient login' )) ;
Notes
There is maybe bugs in this implementations, this package is just an idea of a form field type which can be very useful for the Symfony2 project.
License
This bundle is under MIT license