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