मैं अपने प्रश्न का उत्तर देने आजमाइए, मैं कर रहा हूँ अभी भी काफी इस के साथ धुंधला, आशा है कि किसी को वास्तव में एक बेहतर जवाब दे सकते हैं,
तो 1 abt मैं कैसे $friendsWithMe
साथ निकाले जाते हैं सवाल का जवाब देने
मूल रूप से, मैंने "डिकोडिंग" के साथ एक सरल, अधिक आम, कई बिडरेक्शनल रिलेशनशिप के लिए शुरू किया।
- 1 उपयोगकर्ता कई समूहों में हो सकता है
- 1 समूह कई उपयोगकर्ताओं
- $ समूह-> उपयोगकर्ता हो सकते हैं
बहुत सीधे आगे। लेकिन एसक्यूएल में यह कैसे समझ में आता है?
कोड कोड में अब
# select groups user is in
select group_id from users_groups
where user_id = 1
#select users of group
select user_id from users_groups
where group_id = 1
लागू करने के लिए वास्तविक मॉडल करने के लिए ... एसक्यूएल
में
# select friends of given user
# $user->myFriends
select friend_id from friends
where user_id = 1;
# select users that are friends of given user
# $user->friendsWithMe
select user_id from friends
where friend_id = 1;
आह हे! उन उपयोगकर्ताओं का चयन करें जो दिए गए उपयोगकर्ता के मित्र हैं। इसलिए मैं $friendsWithMe
प्राप्त करता हूं। फिर inversedBy
& mappedBy
& शेष वर्ग को भरने के लिए?
नीचे नोट पर पहली बार देखें।
बिना इतना और गहरी सोच, 2 दिन abt स्पष्ट नहीं है। मुझे लगता है कि
तो अभ्यास के रूप में मैं स्क्रैच से कई आत्म संदर्भ संबंधों में कितने लोगों को बना सकता हूं?
उदाहरण मैं जिस पर काम करने जा रहा हूं वह है ... हम्म, मुझे लगता है कि काफी परेशान है, लेकिन मैं कोशिश करूंगा :) ... 1 उपयोगकर्ता/छात्र के पास कई शिक्षक हो सकते हैं। 1 शिक्षक के पास कई उपयोगकर्ता/छात्र हो सकते हैं। 1 उपयोगकर्ता यहां एक शिक्षक और छात्र हो सकता है। आप इस तरह के मंचों की तरह जानते हैं, जब आप किसी के सवालों का जवाब देते हैं, तो आप एक शिक्षक होते हैं। जब यू से पूछते हैं, यू एक छात्र
, सिद्धांत हिस्सा हैं
ERD का चयन करने के
कुछ कोड की तरह दिखाई देगा, शिक्षकों के छात्रों,
# select students of teacher
# $teacher->students
select student from teacher_student
where teacher = 1;
# select teachers of student
# $student->teachers
select teacher from teacher_student
where student = 2;
ठीक छात्रों के शिक्षकों ?
/** @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;
}
जो पिछले मैं यह किया पर के लिए मुझे
# users
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
#teachers_students
CREATE TABLE `teachers_students` (
`teacher` int(11) NOT NULL,
`student` int(11) NOT NULL,
PRIMARY KEY (`teacher`,`student`),
KEY `student` (`student`),
CONSTRAINT `teachers_students_ibfk_2` FOREIGN KEY (`student`) REFERENCES `users` (`id`),
CONSTRAINT `teachers_students_ibfk_1` FOREIGN KEY (`teacher`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
इस तालिकाओं उत्पन्न! यह परीक्षण ... ईआरएम मैं
Fatal error: Class 'Entities\User' not found in D:\ResourceLibrary\Frameworks\Doctrine\tools\sandbox\index.php on line 61
हो रही है जब मैं एक
$user = new User;
zzz करने की कोशिश ...
मैं भी इस सवाल abt ब्लॉग किया है और पर अपने explaination की सुविधा देता है मेरी tumblr
$ उपयोगकर्ता = नया उपयोगकर्ता(); – ruipacheco
+1 अतिरिक्त स्रोत सामग्री तैयार करने में प्रश्न और प्रयास की स्पष्टता के लिए – calumbrodie
हैलो। मुझे इस संबंध के साथ सिद्धांत के साथ समस्या मिली। जब मैं उस तरह के संग्रह में आइटम जोड़ता हूं, फ्लश करता हूं और उसके बाद मैं उन सभी को हटा देता हूं और फिर फ्लश करता हूं, मुझे 'क्लास' सिद्धांत प्राप्त होता है \ ORM \ Persisters \ ManyToManyPersister 'चेन कॉन्फ़िगर किए गए नेमस्पेस' में नहीं मिला था। जब मैं वस्तुओं को हटा रहा हूं, लेकिन कम से कम एक सब कुछ पूरी तरह से काम करता है छोड़ दें। क्या आप मेरे लिए इस व्यवहार का परीक्षण कर सकते हैं? और यदि आपको उस सिद्धांत के संस्करण के बाद कोई समस्या नहीं है जिसका आप उपयोग कर रहे हैं? मैं आभारी रहूंगा। –