benim soru açık değil düşünüyorum ama burada benim açımdan göstermek için deneyin. i bir kullanıcı u (SO cevaplar sonrası demek) bir öğretmen olabilir ve bir öğretmen bir öğrenci olabilir, birçok kendi kendine başvuran bir ilişki için bir çok sahip varsayarak (u sorulara cevap verebilir ama çok isteyebilir) çok.
namespace Entities;
/** @Entity @Table(name="users")) */
class User {
/**
* @Id @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @Column(type="string", length="30")
*/
private $name;
/**
* @ManyToMany(targetEntity="User", inversedBy="teachers")
* @JoinTable(name="Teachers_Students",
* joinColumns={@JoinColumn(name="teacher", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="student", referencedColumnName="id")}
* )
*/
private $students;
/**
* @ManyToMany(targetEntity="User", mappedBy="students")
*/
private $teachers;
function getName() {
return $this->name;
}
function setName($name) {
$this->name = $name;
}
function getStudents() {
return $this->students;
}
function getTeachers() {
return $this->teachers;
}
}
ben bir kaç kullanıcı var demek
$user1 = new User;
$user1->setName("user 1");
$user2 = new User;
$user2->setName("user 2");
$user3 = new User;
$user3->setName("user 3");
$user4 = new User;
$user3->setName("user 4");
ve ben aralarında kurulum öğretmen-öğrenci ilişkileri, i doctrine reference, u bir koleksiyona Collections::add() eklemek için öğelerini kullanabilirsiniz gördüm kadar okuyor gibi
// user1 is a teacher to user2 & 3
$user1->getStudents()->add($user2);
$user1->getStudents()->add($user3);
// user2 is a teacher to user3
$user2->getStudents()->add($user3);
// user4 is a student to user2
// tests if adding something from the inverse side works
$user4->getTeachers()->add($user2);
ancak bu başarısız
Fatal error: Call to a member function add() on a non-object in D:\ResourceLibrary\Frameworks\Doctrine\tools\sandbox\index.php on line 70
nasıl ben bir koleksiyon ya da bir ilişki öğeleri ekleyebilir?