Arranjo de erros da lista de opções usando a extensão Tree aninhada após a atualização

Eu tenho uma categoria de entidade e uso a extensão Tree Gedmo para gerenciá-la.

Eu adicionei algumas categorias de pais e filhos e isso é exibido bem assim:

select1

Como você vê, Category Man não tem nenhum chlidren. Para testar se a atualização funciona bem ou não. Eu configurei vestidos de categoria como filho de Category Man, mas o arranjo da lista de opções torna-se falso:

select2

Vestidos simples é uma criança de vestidos, mas é exibido sob Hauts , e Hauts é filho de mulheres, mas como você vê, ele é exibido em Category Man .

Como posso resolver isso?

Este é o código:

CategoryRepository

createQueryBuilder('c'); $qb = $this->whereCurrentStore($qb, $store) ->leftJoin('c.children', 'child', 'WITH', 'child.parent = c'); $qb-> orderBy('c.rgt', 'DESC'); return $qb ; } public function whereCurrentStore (\Doctrine\ORM\QueryBuilder $qb, $store) { $qb->where('c.store = :store') ->setParameter('store', $store); return $qb; } public function getIndentedTitle() { return str_repeat("--", $this->lvl).$this->name; } } 

Tipo de categoria

 store = $store; } /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $store = $this->store; $builder //......... ->add('parent', 'entity', array( 'required' => false, 'label' => 'Category parent', 'class' => 'ProjectStoreBundle:Category', 'attr' => array('class' => 'col-sm-8'), 'empty_value' => 'Select one category', 'property' => 'indentedName', 'multiple' => false, 'expanded' => false , 'query_builder' => function (\Project\StoreBundle\Entity\CategoryRepository $r) use ($store) { return $r->getCategories($store); } )) ; } /** * @param OptionsResolverInterface $resolver */ public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( 'data_class' => 'Project\StoreBundle\Entity\Category' )); } /** * @return string */ public function getName() { return 'project_storebundle_category'; } } 

Categoria de Entidade

 children = new ArrayCollection(); } /** * Get IndentedName * */ public function getIndentedName() { return str_repeat("-----", $this->lvl).$this->name; } //......... } 

Não sei se você conseguiu resolver seu problema, mas encontrei solução 🙂 É muito simples, apenas em seu CategoryRepository em vez de

 $qb-> orderBy('c.rgt', 'DESC'); 

adicionar

 $qb->add('orderBy','c.root ASC, c.lft ASC'); 

PS. Muito obrigado pelo seu problema, é me ajudar a trabalhar com o Gedmo Tree 🙂