Symfony2-Form-Builder, Wählen Sie Über Join-Tabelle mit Metadaten

Habe ich 3 Personen:

[Member] ----OneToMany----> [MemberCategory] ---ManyToOne---> [Category]

Dies funktioniert auch so weit wie abrufen von Ergebnissen aus der Datenbank, aber ich kann nicht das Formular-generator zu bauen, eine richtige Formular-Steuerelemente.

Möchte ich eine Liste aller Kategorien mit Kontrollkästchen, die ausgewählt werden die Kategorien, die verwendet werden, von den Mitgliedstaaten. Schließlich möchte ich hinzufügen, dass das Feld Priorität.

Mitglied

class Member
{
    protected $id;

    @ORM\OneToMany(targetEntity="MemberCategory", mappedBy="member")
    protected $categories;
}

Kategorie

class Category
{
    protected $id;

    @ORM\Column(name="category_name", type="string", length=50, nullable=false, unique=true)
    private $categoryName;
}

MemberCategory

class MemberCategory
{
    @ORM\Id
    @ORM\ManyToOne(targetEntity="Member")
    @ORM\JoinColumns({
    @ORM\JoinColumn(name="member_id", referencedColumnName="id", onDelete="CASCADE")
    private $member;

    @ORM\Id
    @ORM\ManyToOne(targetEntity="Category")
    @ORM\JoinColumns({
    @ORM\JoinColumn(name="category_id", referencedColumnName="id", onDelete="CASCADE")
    private $category;

    @ORM\Column(name="priority", type="integer", nullable=true)
    protected $priority;
}

Offensichtlich versucht, mit dem Formular-builder, die nicht arbeiten.

Wenn ich:

$builder->add('categories', 'entity', array(
    'class'        => 'SMWMemberBundle:Category',
    'property'     => 'categoryName',
    'multiple'     => true,
    'expanded'     => true,
    'required'     => false
));

Bekomme ich eine wählen Sie mit den Kategorien, aber keiner von denen ausgewählte in MemberCategory für dieses Mitglied.

Wenn ich:

$builder->add('categories', 'entity', array(
    'class'        => 'SMWMemberBundle:MemberCategory',
    'property'     => 'category.categoryName',
    'multiple'     => true,
    'expanded'     => true,
    'required'     => false
));

Erhalte ich alle ausgewählten Kategorien für alle Benutzer.

Weiß jemand, wie man diese zu arbeiten, dies ist offensichtlich ein gemeinsames Muster in relationalen Daten und wäre leicht mit SQL und PHP.

Ist es ein straight forward Lösung in Symfony 2.3 und Lehre?

Schreibe einen Kommentar