Caso deseje filtrar esses resultados, pode-se usar a opção class e query_builder do tipo Entity. Vamos ao exemplo:
Temos uma Entidade Produtos e queremos que somente apareça no select os produtos ativos. Então vamos a criação do campo no formulário:
$builder ->add('produto', 'entity', array( 'class' => 'AplicativoPrincipalBundle:Produto', 'query_builder' => function(ProdutoRepository $er) { return $er->findAllAtivosQueryBuilder(); }, ))
A opção class diz qual é a classe da entidade. Já a opção query_builder é onde você cria uma função anônima que retorna o queryBuider gerado pela função do seu repositório.
No repositório ProdutoRepository terá que ter a função findAllAtivosQueryBuilder, que irá retornar um queryBuilder como no exemplo abaixo:
public function findAllAtivosQueryBuilder() { return $this->createQueryBuilder('p') ->where('p.ativo = :ativo') ->setParameter('ativo', '1') ->orderBy('p.nome', 'ASC'); }
Então na hora de gerar seu formulário o framework usará essa função para fazer a consulta. Com isso na sua tela, aparecerá somente os produtos ativos para serem escolhidos.
Nenhum comentário:
Postar um comentário