2014-10-23 28 views
8

मैं निम्नलिखित कोड चला रहा हूँ,Laravel सिंक त्रुटि

if($organisation->save()) { 

     if(isset($members)) { 
      $organisation->users()->sync($members); 
     } 

     if(isset($teams)) { 
      $organisation->teams()->sync($teams); 
     } 

     if(isset($teams)) { 
      $organisation->clients()->sync($clients); 
     } 

     if(isset($projects)) { 
      $organisation->projects()->sync($projects); 
     } 

     $organisation->load('users'); 
     $organisation->load('teams'); 
     $organisation->load('clients'); 
     $organisation->load('projects'); 

     return Response::make($organisation, 200); 

    } 

मैं निम्न त्रुटि हो रही है कर रहा हूँ जब मैं कोशिश करते हैं और सिंक $projects,

सरणी इस तरह दिखता है,

[0] => 6 तो एक बहुत ही सरल सरणी। मॉडल में मेरे रिश्ते, इस तरह दिखना

संगठन

public function projects() 
{ 
    return $this->hasMany('Project'); 
} 

परियोजनाओं

public function organisations() 
{ 
    return $this->belongsToMany('Organisation', 'organisation_id'); 
} 

आप मैं एक संगठन कई परियोजनाओं हो सकता है देख सकते हैं। मैं एक कारण है कि मैं निम्न त्रुटि हो रही होगी,

अपरिभाषित विधि रोशन \ डाटाबेस के लिए कॉल नहीं देख सकते हैं \ क्वेरी \ बिल्डर :: सिंक()

+0

क्या आप वाकई 'projects' नाम के साथ' Organisation' के लिए तालिका में किसी भी स्तंभ नहीं है कर रहे हैं? –

+0

संगठन तालिका में प्रोजेक्ट नामक कोई कॉलम नहीं है – Udders

उत्तर

12

यह है के रूप में कई करने के लिए कई रिश्ते दोनों कार्यों आप belongsToMany उपयोग करने की आवश्यकता है, तो आप का उपयोग करना चाहिए:

public function projects() 
{ 
    return $this->belongsToMany('Project'); 
} 

के बजाय:

public function projects() 
{ 
    return $this->hasMany('Project'); 
} 
केवल अनेक संबंध बनाने के लिए कई के लिए

sync() काम करता है

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