Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Laravel अपरिभाषित त्रुटि फेंकने के अंतर्गत आता है

चैट के माध्यम से मदद करने के बाद, समस्या यह थी कि group . नामक एक मौजूदा कॉलम था , और संबंध विधि को group . भी कहा जाता था , इसलिए संबंध पद्धति पर तालिका स्तंभ मान को प्राथमिकता दी जा रही थी।

संबंध विधि का नाम बदलना, या group group_id . जैसा कुछ कॉलम दोनों उपयुक्त समाधान हैं (मेरा सुझाव है कि group_id मार्ग)।

मूल उत्तर:

आप एक जादुई संपत्ति के माध्यम से समूह को पुनः प्राप्त करते हैं, सीधे विधि से नहीं।

echo User::find(1)->group->name;

यदि आप group() . को पुनः प्राप्त करते हैं विधि, यह संबंध वस्तु को वापस कर देगा, कोई प्रश्न नहीं करेगा और संबंधित वस्तु को प्राप्त करेगा।

साथ ही, एलोक्वेंट आपके विदेशी कुंजी कॉलम नाम क्या हैं, इस बारे में अनुमान लगाएगा। group स्वचालित रूप से एक group_id . में अनुवाद करेगा कॉलम। यदि आपके पास group . नामक एक मौजूदा कॉलम है , तो आपको इसे अपने रिश्ते में स्पष्ट रूप से निर्दिष्ट करना चाहिए:

public function group () 
{
    return $this->belongsTo('Group', 'group');
}

यदि आपको group प्रॉपर्टी के लिए "गैर-ऑब्जेक्ट की संपत्ति प्राप्त करने का प्रयास" त्रुटि प्राप्त होती है , तो आपका संबंध कोई परिणाम नहीं लौटा रहा है ($user->group NULLहोगा ) उस समय, आपको यह सुनिश्चित करना चाहिए कि आपका संबंध ठीक से स्थापित है (उदाहरण के लिए सही संबंध का उपयोग करना, हैवन, हैमनी, आदि), और सुनिश्चित करें कि आपके डेटाबेस में वास्तव में संबंधित प्रविष्टि है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बाहरी होस्ट/आईपी से एक MySQL डेटाबेस तक पहुंचना? (यानी:MySQL कार्यक्षेत्र)

  2. एक निश्चित तिथि से शुरू होने वाले 7 दिनों के अंतराल से पंक्तियों को समूहित करें

  3. Symfony2 सिद्धांत Qb STR_TO_DATE अज्ञात कार्य

  4. टूल जो mySQL क्वेरी को ज़ेंड फ्रेमवर्क क्वेरी में कनवर्ट करता है

  5. mysql:चयन पर डुप्लिकेट परिणाम न दिखाएं