Ich habe versucht, ein eingebettetes Formular mit Symfony2/Twig zu erstellen, in dem ich die ID der zugeordneten Entität für jede Zeile auf dem Formular anzeigen wollte.
ich tat dies:Symfony2: Formularelement mit zwei ID-Attributen
{% for p in form.products %}
<tr>
<td>{{p.vars.data.id}}</td>
</tr>
{% endfor %}
, die sehr einfach ist ... aber nichts gedruckt wurde. Ich habe versucht, die folgenden:
{% for p in form.products %}
<tr>
<td>{{dump(p.vars)}</td>
</tr>
{% endfor %}
Und das Ergebnis war unerwartet:
array:27 [▼ "value" => ItemProduct {#857 ▼
-id: null
#enabled: false
#commission: 0.0
#support: 1
-quantity: 0
-id: 1 }
Zwei id
Attribute für das Element. Ich wusste nicht, dass es überhaupt möglich war, und ich verstehe nicht, wie das passieren kann. Mein Code ist extrem einfach und ich habe solche Probleme nie zuvor mit viel komplexeren eingebetteten Formen erlebt.
Hier ist der Rest meines Code:
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;
}
Sie können Ihre eigene Antwort akzeptieren, dies markiert diese Frage als gelöst: http://StackOverflow.com/Help/self-answer –