मेरे पास तीन टेबल हैं: उपयोगकर्ता, आइटम और उपयोगकर्ता_इटम्स। उपयोगकर्ता के पास कई आइटम होते हैं और एक आइटम कई उपयोगकर्ताओं से संबंधित होता है।लार्वेल 4 eloquent पिवट तालिका
टेबल:
Users
id
username
password
Items
id
name
equipable
User_items
id
user_id
item_id
equipped
मॉडल:
class User extends Eloquent {
public function items()
{
return $this->belongsToMany('Item', 'user_items')
->withPivot('equipped');
}
}
class Item extends Eloquent {
public function users()
{
return $this->belongsToMany('User', 'user_items');
}
}
धुरी (user_items) तालिका में मैं एक बहुत ही महत्वपूर्ण स्तंभ "सुसज्जित" नाम दिया है।
मेरे पास एक ऐसा फॉर्म है जहां उपयोगकर्ता लैस, असमान और आइटम फेंक सकते हैं। इस फ़ॉर्म में पिवट (user_items) तालिका पंक्ति आईडी के साथ एक छिपी हुई फ़ील्ड है। इसलिए, जब कोई उपयोगकर्ता किसी आइटम को लैस करने का प्रयास करता है, तो सिस्टम जांचता है कि आइटम उपयुक्त है या नहीं।
तो, मैं पिवट डेटा से आइटम_आईड के आधार पर पिवट डेटा और आइटम डेटा के साथ एक वस्तु चाहता हूं, मैं हैंडलर को भेज सकता हूं (जहां सभी तर्कों को संभाला जाता है)।
तो मुझे सबसे पहले पिवट तालिका तक पहुंचने और फिर आइटम तालिका तक पहुंचने के लिए क्या करना है।
कुछ इस तरह (काम नहीं करता है):
$item = User::find(1)->items->pivot->find(1);
ऐसा करना संभव है?
धन्यवाद! इससे मुझे मदद मिली - डेस्क से मेरे सिर को टक्कर देने के 2 घंटे बाद। अधिक जानकारी के लिए –
http://laravel.com/docs/eloquent#working-with-pivot-tables –
देखें :) हाँ! मुझे एहसास हुआ कि मैं "-> पिवट" भूल गया था। +1 – rofavadeka