Birçok ilişkinin Doctrine ve Symfony2 ile nasıl çalıştığını anlamak için triyng yapıyorum.Symfony2 ile Doktrini kullanarak çoktan çoğa ilişkisi sorgula
ben resmi belgelere (goo.gl/GYcVE0) gösterilen örnek yeniden ettik ve ben iki Varlık Sınıfları var: Aşağıda görebileceğiniz gibi Kullanıcı ve Grup. Symfony2'deki ben Varlık bir sorgu oluşturmak gerektiğini
CREATE TABLE User (
id INT AUTO_INCREMENT NOT NULL,
PRIMARY KEY(id)
) ENGINE = InnoDB;
CREATE TABLE users_groups (
user_id INT NOT NULL,
group_id INT NOT NULL,
PRIMARY KEY(user_id, group_id)
) ENGINE = InnoDB;
CREATE TABLE Group (
id INT AUTO_INCREMENT NOT NULL,
PRIMARY KEY(id)
) ENGINE = InnoDB;
ALTER TABLE users_groups ADD FOREIGN KEY (user_id) REFERENCES User(id);
ALTER TABLE users_groups ADD FOREIGN KEY (group_id) REFERENCES Group(id);
sorundur ve bu durumda bende olmayan: benim DB güncellerseniz
<?php
/** @Entity **/
class User
{
// ...
/**
* @ManyToMany(targetEntity="Group", inversedBy="users")
* @JoinTable(name="users_groups")
**/
private $groups;
public function __construct() {
$this->groups = new \Doctrine\Common\Collections\ArrayCollection();
}
// ...
}
/** @Entity **/
class Group
{
// ...
/**
* @ManyToMany(targetEntity="User", mappedBy="groups")
**/
private $users;
public function __construct() {
$this->users = new \Doctrine\Common\Collections\ArrayCollection();
}
// ...
}
ben bu MySQL Şeması olsun Tablo users_group
ile ilişkili bir varlık, bu tablo çerçeve tarafından otomatik olarak oluşturulduğundan.
Peki, bu ilişki tablosuna ilişkin bilgileri nasıl alabilirim? Örneğin, bir gruptaki tüm Kullanıcıları, users_group
tablosunda görünen bir kimliği olan kullanıcıların olması gerekir.
Bunu DQL, QueryBuilder veya diğer yöntemleri kullanarak nasıl yapabilirim?
Çok teşekkürler.
Kriterleri için mysql sorgusu yazabilir misiniz? bu yüzden DQL sorgusunda çevirmeyi deneyeceğiz –
@M Khalid Junaid Örneğin bir gruptaki tüm kullanıcıları almam gerekiyor. Ham SQL kullanmak, SELECT u.id, u.name FROM Kullanıcıları u, Grup g, users_group ug WHERE ug.group_id = 5 VE u.id = ud.user_id gibi bir şey olmalıdır. Gördüğünüz gibi users_group tablosuna ilişkin Entity'ye ihtiyacım var. –