Doctrine many-to-many problem

43 views
Skip to first unread message

Selim Can CABA

unread,
Feb 4, 2016, 8:13:36 AM2/4/16
to Symfony 2 Turkish Users
Merhaba,

EasyAdminBundle kullanarak post ve category entity'lerimi düzenliyorum fakat bir sorun var. Post'a category eklediğimde sorunsuz kaydediyor, category'ye post eklemek istediğimde hiç birşey yapmıyor.

Profiler üzerinden kontrol ettim. Doctrine, form'da default data ile submitted data arasında fark olmasına rağmen hiç bir update query göndermemiş.

Symfony sürümüm 2.8

Post Entity ManyToMany:

/**
 * @ORM\ManyToMany(targetEntity="Category", inversedBy="posts")
 * @ORM\JoinTable(name="post_category")
 */
private $categories;

public function __toString()
{
   
return $this->title;
}

/**
 * Post constructor.
 */
public function __construct()
{
   
$this->publishedAt = new \DateTime();
   
$this->categories = new ArrayCollection();
}

Category Entity ManyToMany:

/**
 * @ORM\ManyToMany(targetEntity="Post", mappedBy="categories")
 */
private $posts;

public function __toString()
{
   
return $this->name;
}

/**
 * Constructor
 */
public function __construct()
{
   
$this->posts = new ArrayCollection();
}

Sorun entity ilişkilerinde mi easyadminbundle'da mı emin olamadım. Yardımcı olursanız sevinirim.

Osman Üngür

unread,
Feb 4, 2016, 9:02:26 AM2/4/16
to symfon...@googlegroups.com
Selam,

Tum objeleri persist ediyormusunuz?

Eger sizin kontrolunuz disinda ise manytomany annotation larina CASCADE vermeniz gerekir. ornegin cascade={‘PERSIST’} gibi.

--

---
Bu iletiyi Google Grupları'ndaki "Symfony 2 Turkish Users" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için symfony-2-tr...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.

Selim Can CABA

unread,
Feb 4, 2016, 9:37:45 AM2/4/16
to Symfony 2 Turkish Users
Hiç bir objede persist kullanmamıştım. 
posts ve categories'in annotation'larına cascade={"persist"} ekledim fakat sorun hala devam ediyor.

4 Şubat 2016 Perşembe 16:02:26 UTC+2 tarihinde Osman Üngür yazdı:

Selim Can CABA

unread,
Feb 7, 2016, 3:31:57 AM2/7/16
to Symfony 2 Turkish Users
Merhaba

Normal şartlarda bu sorunu çözmek için; Category class'ının addPost methodunun içine addCategory methodu eklemek yeterli.


EasyAdminBundle için ise henüz çözümü bulamadım. EasyAdminBundle, oluşturduğum class'ların setter ve getter'larını kullanmıyor.

Github'ta issue açtım aynı sorunu yaşayan olursa issue'ya bakabilir, umarım çözeriz çünkü EasyAdminBundle baya hoşuma gitti :)



Reply all
Reply to author
Forward
0 new messages