2013-07-22 9 views
7

मैं एक लार्वेल 4 आधारित साइट पर काम कर रहा हूं जो एकाधिक डेटाबेस पर काम करता है। एक अनुरोध है जो मुझे प्रत्येक अनुरोध पर चलाने की ज़रूरत है जो एक अलग डेटाबेस से रिकॉर्ड खींचती है।मॉडल के लिए डेटाबेस सेट करें?

क्या कोई तरीका है कि मैं किसी अन्य तरह से इस विशेष मॉडल को अन्य डेटाबेस में जोड़ सकता हूं ताकि मैं इसे सामान्य रूप से पुनः प्राप्त कर सकूं?

$client = Client::find(Session::get('client_id')); 

किसी भी सलाह की सराहना की।

धन्यवाद

उत्तर

23
// Model 
class Client extends Eloquent 
{ 
    protected $connection = 'masterDb'; 
} 


// config/database.php 
'masterDb' => array(
    'driver' => 'mysql', 
    'host'  => 'localhost', 
    'database' => 'name', 
    'username' => 'user', 
    'password' => 'pass', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
), 

आप जितना चाहें के रूप में कई नामित कनेक्शन बना सकते हैं। उनमें से एक को डिफॉल्ट के रूप में सेट करें, प्रत्येक मॉडल बाद में इनमें से किसी भी कनेक्शन का उपयोग कर सकता है।

+1

ध्यान दें कि: डीबी :: तालिका ("क्लाइंट") (क्लाइंट :: क्वेरी() के बजाय) का उपयोग करके क्वेरी बनाना अभी भी डिफ़ॉल्ट कनेक्शन – ThoQ

+1

का उपयोग कर एक क्वेरी देता है, जब आप डीबी :: टेबल सिंटैक्स का उपयोग करते हैं, तो आपको करना होगा : 'डीबी :: कनेक्शन ('मास्टरडीबी') -> तालिका (" क्लाइंट ")' –

संबंधित मुद्दे