私は、フォームの各行にマッピングされたエンティティのIDを表示したいと思っていたSymfony2/Twigで埋め込みフォームを作成しようとしていました。
私はこれをやっていた:Symfony2:2つのid属性を持つフォーム要素
{% for p in form.products %}
<tr>
<td>{{p.vars.data.id}}</td>
</tr>
{% endfor %}
非常に簡単です...しかし、何も印刷されませんでした。
{% for p in form.products %}
<tr>
<td>{{dump(p.vars)}</td>
</tr>
{% endfor %}
、結果は予想外であった:: は、私は次のことを試してみました要素の属性id
array:27 [▼ "value" => ItemProduct {#857 ▼
-id: null
#enabled: false
#commission: 0.0
#support: 1
-quantity: 0
-id: 1 }
つ。私はそれが可能であったことを知らなかったし、これがどうして起こるかも理解していない。私のコードは非常に単純で、はるかに複雑な埋め込みフォームでもこのような問題に遭遇したことはなかった。ここで
は私のコードの残りの部分である:
ItemProductType
class ItemProductType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder -> add ('artist_commission' , 'text');
}
// ...
}
ItemProductsType
class ItemProductsType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('products', 'collection', array('type' => new ItemProductType()));
}
ItemProduct
/**
* @ORM\Table(name="item_products")
* @ORM\Entity(repositoryClass="APIBundle\Entity\ItemProductRepository")
*/
class ItemProduct extends Product
{
/**
* @var integer
*
* @ORM\Id()
* @ORM\Column(name="id", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="boolean")
*/
protected $enabled;
/**
* @ORM\Column(type="float")
*/
protected $commission;
/**
* @ORM\Column(type="integer")
*/
protected $support;
}
あなた自身の答えを受け入れることができます。これは解決されたこの問題をマークします:http://stackoverflow.com/help/self-answer –