मुझे उत्सुकता है कि hasMany
के लिए वाक्प्रचार संबंध belongsToMany
के मुकाबले एक अलग हस्ताक्षर है। विशेष रूप से कस्टम शामिल तालिका नाम - एक सिस्टम के लिए जहां Comment
कई Role
एस से संबंधित है, और दिए गए Role
में कई Comment
एस होंगे, मैं my_custom_join_table
नामक तालिका में रिश्ते को स्टोर करना चाहता हूं और comment_key
के रूप में सेट की गई कुंजी है और role_key
।में कई बनाम हैं laravel 5.x
return $this->belongsToMany('App\Role', 'my_custom_join_table', 'comment_key', 'role_key'); // works
लेकिन उलटा पर, मुझे लगता है कि कस्टम तालिका (कम से कम डॉक्स यह उल्लेख नहीं है) को परिभाषित नहीं कर सकते हैं:
return $this->hasMany('App\Comment', 'comment_key', 'role_key');
अगर मैं एक Role
वस्तु है कि hasMany
Comments
, लेकिन मैं उस रिश्ते को स्टोर करने के लिए एक गैर-मानक तालिका नाम का उपयोग करता हूं, मैं इस गैर मानक तालिका का उपयोग क्यों कर सकता हूं, लेकिन दूसरा नहीं?
एक द्वि-दिशात्मक का प्रतिलोम कई-से-अनेक संबंध में कई-से-अनेक है, नहीं एक-से-कई। सिद्धांत में सभी संबंध आदेशों की एक अच्छी प्रस्तुति है [http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#many-to-many-bidirectional) और उनके कार्यान्वयन। – bishop
आधिकारिक दस्तावेज में भी वांछित संबंधों के बारे में बहुत अच्छा लेखन है https://laravel.com/docs/5.2/eloquent-relationships – user3158900