ए User
में एक (या शून्य) Company
है, और Company
एक और केवल एक User
से संबंधित है। मैं किसी उपयोगकर्ता के लिए एक कंपनी को सहेजने की कोशिश करता हूं लेकिन जब भी मैं सहेजने की विधि को फिर से ट्रिगर करता हूं तो डेटाबेस में यह एक नई प्रविष्टि जोड़ता है। यह एक से एक संबंध है, इसलिए मैं विधि User
पर विधि।लार्वेल में एक से एक संबंध को सहेजना
तो Company
एक विधि user()
है:
public function company() {
return $this->hasOne(Company::class, 'user_id');
}
मैं बचाने के लिए इस तरह एक उपयोगकर्ता के कंपनी (ताकि या उसे अपडेट) कोशिश कर रहा हूँ (:
public function user() {
return $this->belongsTo(User::class, 'user_id');
}
और User
एक विधि company()
है एक नियंत्रक में):
$company = new Company();
$company->name = 'Test';
User::findOrFail(1)->company()->save($company);
पहली बार जब मैं इस कोड को चलाता हूं तो यह डेटाबेस (ठीक) में प्रविष्टि बनाता है, लेकिन दूसरी बार यह उसी उपयोगकर्ता के लिए एक नई प्रविष्टि जोड़ता है (ठीक नहीं है)। मैंने सोचा कि यह केवल डेटाबेस प्रविष्टि को अद्यतन करेगा।
क्या यह लारवेल या में एक गड़बड़ है (या मुझे एक से एक संबंध में नहीं समझा जाता है) क्या मैं कुछ गलत कर रहा हूं? (मुझे लगता है कि और आशा है कि यह दूसरा उद्देश्य है)
चेक इस जवाब है, यह आपकी मदद कर सकता है: http://stackoverflow.com/a/20764237/5122070 –
धन्यवाद, लेकिन मुझे यकीन है कि यह वास्तव में इस विशेष समस्या के लिए मदद करता है नहीं कर रहा हूँ। मेरी समस्या अधिक विशिष्ट है। यह –