Symfony2 - Como definir e obter opções ao usar uma classe de formulário?

Eu estou usando classes de formulário para criar vários formulários no meu projeto.

No arquivo Tipo de Entidade, para a função buildForm, existe um parâmetro secundário de "array $ options" (isto é mostrado na Documentação oficial do Symfony 2, mas nunca mencionado, nunca!)

Eu tenho alimentado uma matriz na função createForm no meu controlador, mas agora estou totalmente perplexo em como recuperar os valores armazenados?

<code>$form = $this->createForm(new ProductType(array(), array('id' => '2')), $product);
</code>

A única coisa que eu encontrei sobre a obtenção das opções é usar a função getOption (), mas isso não existe no Symfony 2 (o post que encontrei foi de 2010).

Eu tentei usar:

<code>$id = $options['id'];
</code>

Mas quando tento usar $ id em qualquer lugar, recebo o erro:

Aviso: Índice indefinido: id

O que da?

Como faço para recuperar meus valores da matriz $ options? Eu estou mesmo colocando-os corretamente em primeiro lugar?

EDIT - Mais código:

Classe de formulário

<code><?php

namespace DEMO\DemoBundle\Form\Product;

use Doctrine\ORM\EntityRepository;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class ProductType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('name')
            ->add('slug')
            ->add('reference')
            ->add('description')
            ->add('active_from')
            ->add('active_till')
            ->add('is_active')
            ->add('category', 'entity', array(
                'class' => 'DEMO\DemoBundle\Entity\Product\ProductCategory',
                'query_builder' => function(EntityRepository $er) {
                    return $er->createQueryBuilder('u')
                        ->where('u.section = :id')
                        ->setParameter('id', ***ID VARIABLE NEEDS TO GO HERE***)
                        ->orderBy('u.root', 'ASC')
                        ->addOrderBy('u.lft', 'ASC');
                },
                'empty_value' => 'Choose an option',
                'property' => 'indentedName',
            ));
    }

    public function getDefaultOptions()
    {
        return array(
            'data_class' => 'DEMO\DemoBundle\Entity\Product\Product'
        );
    }

    public function getName()
    {
        return 'demo_demobundle_product_type';
    }
}
</code>

questionAnswers(6)

yourAnswerToTheQuestion