का उपयोग कर कई संबंधित तालिकाओं से परिणाम लौट रहा है मैं लैरवेल 4 का उपयोग कर रहा हूं और विशेष रूप से मैं ऐसे उत्तर की तलाश में हूं जो बोलने वाले ORM का उपयोग करता है।लैरवेल: eloquent
मैं एक मेज "कार्यों" जो कंटेनर एक client_id और एक user_id प्रत्येक पंक्ति करने के लिए आवंटित की है।
client_id एक "ग्राहकों" मेज पर एक ग्राहक के लिए संदर्भित करता है और user_id एक "उपयोगकर्ताओं" मेज पर एक उपयोगकर्ता को दर्शाता है।
मैं आपकी क्या अपेक्षाएं हैं: सभी कार्य दिखाने के लिए और प्रदर्शित "ग्राहकों" नाम और "उपयोगकर्ताओं" first_name
तो परिणाम मेरी (ब्लेड में इस प्रकार दिखाई देगा) देखें:
@foreach($tasks as $task)
<tr>
<td>{{ $task->user->first_name }}</td>
<td>{{ $task->client->name }}</td>
<td>{{ $task->description }}</td>
</tr>
@endforeach
उपर्युक्त दृश्य $ task-> क्लाइंट-> नाम पूरी तरह ठीक है लेकिन दुर्भाग्यवश एक "टी दिखाता है जब मैं लाइन $ जोड़ने गैर वस्तु की "संपत्ति प्राप्त करने के लिए rying task-> उपयोगकर्ता-> first_name
मेरे नियंत्रक इस तरह दिखता है:
$tasks = Task::with(array('user', 'client'))->get();
return View::make('index', compact('tasks'));
मैं यह समझ के रूप में अपने मॉडल भी एक फर्क, तो मेरे मॉडल इस तरह दिखेगा:
class Task extends Eloquent {
protected $guarded = array();
public static $rules = array();
public function client() {
return $this->belongsTo('Client');
}
public function user() {
return $this->belongsTo('User');
}
}
और:
class User extends Eloquent implements UserInterface, RemindableInterface {
public function task()
{
return $this->hasMany('Task');
}
}
और:
class Client extends Eloquent {
public function projects(){
return $this->hasMany('Project', 'client_id');
}
}
इस काम को कैसे करें इस पर कोई विचार है? मैं थोड़ी देर के लिए मेरे सिर खरोंच किया गया है - यह भी ध्यान रखें कि मैं एक डेटाबेस संबंध समर्थक इतना सरल व्याख्या नहीं कर रहा हूँ बेहतर :)
पर अपने कोड की जांच कर सकते यह मेरे लिए प्रतीत होता है कि अगर आपकी कार्य तालिका एक कई-से-अनेक संबंध में पिवट तालिका है। क्लाइंट और उपयोगकर्ता को सीधे लिंक करने के लिए आपको शायद Eloquent's belongToMany() विधि का उपयोग करना चाहिए। अपनी पिवट तालिका में अतिरिक्त फ़ील्ड जोड़ने के तरीके के बारे में जानकारी के लिए [यह] (http://laravel.com/docs/eloquent#working-with-pivot-tables) देखें। – ciruvan
हाय @ क्यूविज़क्रिस मैंने प्रलेखन पर एक नज़र डाली और मैं अपनी आवश्यकताओं के लिए उपयोगकर्ता/भूमिका/पिवट के उदाहरण का अनुवाद कैसे कर सकता हूं। क्या आप कह रहे हैं कि मुझे अपनी हैनी() से कई() में बदलना चाहिए? मैं यहाँ थोड़ा सा खो गया हूँ। – Josh