2016-03-24 19 views
0

Kullanılabilir türlerim ile ilgili bir seçim alanı oluşturmak istiyorum.Formtype symfony'de sorgu oluşturucusuyla toplam ve adı alana nasıl ulaşın

3 varlığım var. Gönderi, Türler [typebase_id, count = 0], TypesBase [isim, miktar].

Ben görüntülemek istediğiniz => Seçimleri =>

  • TypeA (3)
  • TypeB (12)

1- Ben TypeBase Adı almak gerekir.

2- I Türleri grup gerekir (Typebase_id ve = 0 sayısı)

3- seçilen değer türleri işletmenin Typebase_id edilecektir.

Bunu formumda kullanıyorum.

$builder->add('types', 'entity', array(
        'class' => 'PostBundle:Types', 
        'query_builder' => function(EntityRepository $er) use ($user) { 
         return $er->createQueryBuilder('w') 
          ->where("w.user = :user") 
          ->setParameter('user', $user) 
          ->andWhere("w.active = :active") 
          ->setParameter('active', 0); 
        }, 
       )); 

Türlerde __toString'i deneyin, ancak TypeBase Adını alamıyorum.

Teşekkür

+0

Herhangi bir yardım? Biri. – Luiz

cevap

0

kullanın choice_label parametresi. Dokümanlar: http://symfony.com/doc/2.7/reference/forms/types/entity.html#choice-label

$builder->add('types', 'entity', array(
    'class' => 'PostBundle:Types', 
    'query_builder' => function(EntityRepository $er) use ($user) { 
     return $er->createQueryBuilder('w') 
      ->where("w.user = :user") 
      ->setParameter('user', $user) 
      ->andWhere("w.active = :active") 
      ->setParameter('active', 0); 
    }, 
    'choice_label' => function ($type) { 
     return $type->getName(); 
    } 
)); 

Ya da sadece: 'choice_label' => 'name'.

+0

$ türünde bir TypeBase referansı vardır. ID ile ayarlandı. Ama isim boş. TypeBase adını almak istiyorum. – Luiz

+0

Herhangi bir yardım? Biri. – Luiz

+0

Base ve TypeBase öğenizi göster. –