taveo/form-bundle

This package is abandoned and no longer maintained. No replacement package was suggested.

GregwarFormBundle provides the form type "entity_id"

Installs: 213

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 26

Type:symfony-bundle

dev-master 2012-08-09 15:22 UTC

This package is not auto-updated.

Last update: 2018-04-29 08:49:26 UTC


README

GregwarFormBundle provides the form type "entity_id"

Installation

This version of the bundle requires Symfony 2.1.

1) Download FormBundle using composer

Add FormBundle in your composer.json:

{
    "require": {
        "taveo/form-bundle": "*"
    }
}

Tell composer to download this bundle by running the command:

$ php composer.phar update taveo/form-bundle

2) And registers the bundle in your app/AppKernel.php:

<?php
//...
public function registerBundles()
{
    $bundles = array(
        ...
        new Gregwar\FormBundle\GregwarFormBundle(),
        ...
    );
...

Adds the following configuration to your 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', 'entity_id', 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', 'entity_id', 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', 'entity_id', 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