2013-04-14 9 views
5

मेरे पास एंटी 'व्यू' के साथ OneToMany के साथ एक इकाई 'लिस्टिंग' है, इनके बीच की कुंजी view.content_id है जो लिस्टिंग की आईडी रखती है, हालांकि, यह अन्य इकाइयों से भी संबंधित है, इसलिएDoctrine2 OneToMany बिना मैप किए गए

/** 
* @var Listing 
* 
* @ORM\ManyToOne(targetEntity="\Acme\Bundle\Entity\Listing", inversedBy="views") 
* @ORM\JoinColumns({ 
* @ORM\JoinColumn(name="content_id", referencedColumnName="id") 
* }) 
*/ 
private $listing; 

इसे देखने के लिए ब्रेक क्योंकि दृश्य इकाई को सहेजते समय content_id शून्य हो जाता है।

मैं इसे कैसे ठीक कर सकता हूं? लिस्टिंग तरफ

संबंध: ContentType जो कुछ 'दृश्य' परिणाम भेदभाव:

/** 
* @var views 
* 
* @ORM\OneToMany(targetEntity="\Acme\Bundle\Entity\View", mappedBy="listing") 
* @ORM\JoinColumns({ 
* @ORM\JoinColumn(name="id", referencedColumnName="content_id") 
* }) 
*/ 
private $views; 

मैं Listing.views में शामिल होने और साथ content_type = जोड़कर प्रश्नों बना रहा हूं।

+0

त्रुटि आप प्राप्त नहीं बताता है आप 'झरना = {" जारी रहती है "}' उपयोग करने के लिए? – cheesemacfly

+0

कोई त्रुटि नहीं है, यह एक मान्य दृष्टिकोण है। हालांकि, 'view' को सहेजते समय content_type फ़ील्ड शून्य हो जाती है क्योंकि इस कॉलम को इंगित करने वाली दो एनोटेशन हैं। – Paxton

+0

आमतौर पर दूसरे 'जॉइन कॉलम' या 'जॉइन कॉलम' एनोटेशन की आवश्यकता नहीं होती है क्योंकि एक 'मालिक' और एक 'उलटा' पक्ष होता है। मेरा अनुमान है कि आपके कोड में उन टिप्पणियों से कुछ प्रकार का संघर्ष हो रहा है, इसलिए सिद्धांत यह हल नहीं कर सकता कि कौन सी साइट है ... –

उत्तर

0

मैं पार्टी के लिए बहुत देर से आ रहा हूं, लेकिन सोचा कि अगर मैं किसी और की मदद करता हूं तो मैं जवाब दूंगा।

दो इकाइयों के बीच स्थापित संबंध के कारण, अब आपको एफके मूल्य के बजाय उस संपत्ति पर ऑब्जेक्ट असाइन करना होगा। इसलिए जैसा:

$listing = $em->getRepository('Acme\Bundle\Entity\Listing') 
       ->find($content_id); 
$view->setListing($listing); 

और न:

$view->setListing($content_id); 
बेशक

, अगर यह पता चला कुछ और हो सकता है, मैं जानने के लिए उत्सुक होगी।

: ^)

+0

दुर्भाग्य से नहीं। समाधान विरासत मैपिंग/Discriminators का उपयोग करना था। – Paxton

संबंधित मुद्दे