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

लारवेल में डेटा को वर्गीकृत करने के लिए वाक्पटु बहुरूपी संबंधों का उपयोग करना

ठीक है, आपका डेटाबेस और आपकी मॉडल परिभाषाएँ ठीक दिखती हैं, साथ ही किसी लेख में श्रेणी जोड़ने के लिए आपका कोड भी। हालांकि, किसी लेख को किसी श्रेणी में जोड़ने के लिए आपका कोड थोड़ा हटकर है।

सबसे पहले, कोई $category->articles() नहीं है तरीका। संबंधित वस्तुओं तक पहुँचने के लिए, आप अपने परिभाषित संबंध का उपयोग करते हैं:$category->categorizable() . साथ ही, संबंध विशेषता, $category->categorizable इसमें लोडेड संबंधित ऑब्जेक्ट होगा, और यह स्वचालित रूप से या तो एक Article होगा या एक Service वस्तु, जो संबंधित है उसके आधार पर।

दूसरा, यह morphTo() है रिश्ते का पक्ष; यह belongsTo() . जैसा व्यवहार करता है , और इसी तरह के तरीके हैं। उदाहरण के लिए, कोई save() नहीं है विधि, लेकिन आपके पास associate() . है तरीका। इसका मतलब है कि आपको पहले अपना लेख बनाना होगा, और फिर उसे श्रेणी के साथ जोड़ना होगा। साथ ही, associate() स्वचालित रूप से सहेजता नहीं है, इसलिए आपको उसे भी कॉल करना होगा।

$article = new App\Article();
$article->title = 'This is an article title.';
$article->save();

$category = App\Category::find(1);
$category->categorizable()->associate($article);
$category->save();

// showing use of relationship attribute
$related = $category->categorizable;
echo get_class($related);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं एक ही सर्वर पर एकाधिक डोमेन में PHP सत्र कैसे बनाए रखूं?

  2. गिनती (*) और गिनती (कॉलम_नाम), क्या अंतर है?

  3. जावा - परिणाम सेट पर कॉलम का नाम कैसे प्राप्त करें

  4. MySQL में लेनदेन - वापस रोल करने में असमर्थ

  5. MySQL OpenCarts डेटाबेस से डुप्लिकेट पंक्तियों का चयन करें