Я пытаюсь создать новый FormType для своего приложения Symfony. У меня есть поле ManyToOne:
// Grower.php
/**
* @ORM\ManyToOne(targetEntity="CategoryGrower", inversedBy="growers")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
**/
private $category;
// CategoryGrower.php
/**
* @ORM\OneToMany(targetEntity="Grower", mappedBy="category")
**/
private $growers;
// GrowerType.php
$builder
->add('name', 'text')
->add('category', 'entity', array(
'class' => 'FermierMalin\Bundle\GrowerBundle\Entity\CategoryGrower',
'choice_label' => 'label',
'group_by' => 'parent',
));
Но выбор в HTML-коде пуст:
<div>
<label for="fermiermalin_bundle_growerbundle_grower_category" class="required">Category</label>
<select id="fermiermalin_bundle_growerbundle_grower_category" name="fermiermalin_bundle_growerbundle_grower[category]" required="required">
</select>
</div>
В моей БД у меня есть некоторые данные:
ID, label, parent
1,Fruits,Maraichers
2,Légumes,Maraichers
3,Vin,Boissons
4,Jus,Boissons
Я сделал это так
сущность
/**
* @ORM\ManyToOne(targetEntity="FamebitBundle\Entity\Price")
* @ORM\JoinColumn(name="price_id", referencedColumnName="id")
*/
protected $price;
FormType
->add('price', EntityType::class, array(
'class' => 'FamebitBundle\Entity\Price',
'property' => 'label',
'choice_value' => 'id',
))
Просмотр Twig
{{ form_row(form.price) }}
Это сработало для меня :)