ile'tablo Üyelik: Bu veritabanından sıra kadarıyla getiriliyor sonuçları çalışırSymfony2'nin Form Builder Seç karşısında ben 3 varlıklara sahip Meta
[Member] ----OneToMany----> [MemberCategory] ---ManyToOne---> [Category]
ama Form Builder bir doğru formu oluşturmak için alamıyorum kontrolleri.
Üye tarafından kullanılan kategoriler için işaretlenmiş onay kutularının bulunduğu tüm kategorilerin bir listesini istiyorum. Sonunda öncelik alanını eklemek istiyorum.
Üye
class Member
{
protected $id;
@ORM\OneToMany(targetEntity="MemberCategory", mappedBy="member")
protected $categories;
}
Kategori
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;
}
Bariz att çalışmayan form oluşturucuyu boşaltır.
$builder->add('categories', 'entity', array(
'class' => 'SMWMemberBundle:Category',
'property' => 'categoryName',
'multiple' => true,
'expanded' => true,
'required' => false
));
tüm kategorileri ile seçilmiş olsun, ama bu üye için MemberCategory seçilenler hiçbiri:
Ben kullanın.
Ben kullanıyorsanız:
$builder->add('categories', 'entity', array(
'class' => 'SMWMemberBundle:MemberCategory',
'property' => 'category.categoryName',
'multiple' => true,
'expanded' => true,
'required' => false
));
Ben tüm kullanıcılar için seçilen tüm kategoriler olsun.
Bunun nasıl işe yaradığını bilen biri var mıdır, bu ilişkisel verilerde açık bir ortak modeldir ve SQL ve PHP'yi kullanmak kolay olacaktır.
Symfony 2.3 ve Doctrine'de düz bir ileri çözüm var mı?
Eksiksiz Lütfen Cevap, ana bölüm cevabınız olarak yorumlanmıştır – Trix