मेरे database.php
में, मेरे पास दो डेटाबेस कॉन्फ़िगर किए गए हैं।लार्वेल - वैश्विक डेटाबेस कनेक्शन को वैश्विक स्तर पर बदलें
'db1' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'db1',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
'db2' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'db2',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
तो डिफ़ॉल्ट db1
द्वारा शुरू में डिफ़ॉल्ट डीबी के रूप में स्थापित किया जाएगा। अब मैं 'चयन' ड्रॉपडाउन से एक विकल्प चुनकर डिफ़ॉल्ट डेटाबेस को 'db2' पर स्विच करना चाहता हूं। इस नियंत्रक विधि जिसमें मैं
public function postChangeDb() {
$db = Input::get('db');
Config::set('database.default', $db);
}
इसके पूर्ण होते ही, मैं ताज़ा 'पृष्ठ करने के लिए एक के बाद AJAX अनुरोध करना होगा, लेकिन कनेक्शन' DB1 'पर अब भी है।
मैं भी निम्नलिखित
public function getTest() {
Config::set('database.default', 'db1');
$users = User::all();
echo sizeof($users); // returns 20
Config::set(database.default', 'db2');
$users = User::all();
echo sizeof($users); // returns 50 - which is correct!
}
की कोशिश की और इसके बाद के संस्करण ठीक काम करता है और इसे सफलतापूर्वक डेटाबेस स्विच करता है। स्विच 'प्रति अनुरोध' आधार है?
हां
नीचे क्या कोड दिखाई देती हैं इसका एक उदाहरण है । कोशिश की। मेरा प्रश्न भी संपादित किया। – ericbae
@ericbae मैंने अपना उत्तर –