formunu oluşturan üç basit varlığım var.Birçok katılan 3 sınıfla birçok ilişki -
class Product {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="ProductsCategories", mappedBy="category")
*/
private $categories;
//..
class ProductsCategories {
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Product")
*/
private $product;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Category")
*/
private $category;
//..
class Category {
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="ProductsCategories", mappedBy="product")
*/
private $products;
//..
Ek alanlar eklemek için çok fazla ilişkilendirmeyle ek sınıf oluşturmak istiyorum. Benim sorunum form alanını oluşturmak için nasıl bilmiyorum yani, burada form tipi
//..
->add('categories', 'entity', [
'class' => 'AppBundle:Category',
'choice_label' => function($category, $key, $index) {
return $category->getName();
},
'multiple' => true,
'required' => true,
'expanded' => false,
])
//..
olduğu Ama formu gönderdiğinde bu hataları gösterir:
Expected value of type "Doctrine\Common\Collections\Collection|array" for association field "AppBundle\Entity\Product#$categories", got "AppBundle\Entity\Category" instead.
teşekkürler.
Hayır, hayır, hayır, anlamıyorsunuz, örneğinizle yeni oluşturulan üçüncü tabloya ek alanlar ekleyemiyorum. http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#many-to-many-unidirectional Neden çoktan çoğa dernekler daha az yaygındır? Sıklıkla, ek öznitelikleri bir ilişkilendirmeyle ilişkilendirmek istediğinizde, bir ilişkilendirme sınıfı tanıtabilirsiniz. Sonuç olarak, doğrudan çoktan çoğa ilişkisi kaybolur ve 3 katılımcı sınıf arasında bire-çok/çoktan bire birlikler tarafından değiştirilir. ' – nacholibre
Üzgünüm, Çok Yönlü bir Öznitelik istediğinizi anlamıyorum, "Öznitelikler" iniz için bazı alanlar ve Kategori'deki bir alan EntityType ile bir ProductCategoryType oluşturmanız gerektiğini düşünüyorum. Daha sonra ProductType içinde, bir ProductText Type TypeType türü ekleyin. – mpiot