में .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database1
DB_USERNAME=root
DB_PASSWORD=secret
DB_CONNECTION_SECOND=mysql
DB_HOST_SECOND=127.0.0.1
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=database2
DB_USERNAME_SECOND=root
DB_PASSWORD_SECOND=secret
में config/database.php
'mysql' => [
'driver' => env('DB_CONNECTION'),
'host' => env('DB_HOST'),
'port' => env('DB_PORT'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
],
'mysql2' => [
'driver' => env('DB_CONNECTION_SECOND'),
'host' => env('DB_HOST_SECOND'),
'port' => env('DB_PORT_SECOND'),
'database' => env('DB_DATABASE_SECOND'),
'username' => env('DB_USERNAME_SECOND'),
'password' => env('DB_PASSWORD_SECOND'),
],
नोट: में mysql2अगर DB_username और DB_password एक ही है, तो आप उपयोग कर सकते हैं env('DB_USERNAME'), जिसमें metioned है .envपहली कुछ पंक्तियों।
कनेक्शन परिभाषित करें
app/config/database.php
return array(
'default' => 'mysql',
'connections' => array(
# Primary/Default database connection
'mysql' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'database1',
'username' => 'root',
'password' => 'secret'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
# Secondary database connection
'mysql2' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'database2',
'username' => 'root',
'password' => 'secret'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
योजना
निर्दिष्ट करने के लिए कि किस कनेक्शन का उपयोग करना है, बस connection()विधि चलाएं
Schema::connection('mysql2')->create('some_table', function($table)
{
$table->increments('id'):
});
क्वेरी बिल्डर
$users = DB::connection('mysql2')->select(...);
सुवक्ता
$connectionअपने मॉडल में चर सेट करें
class SomeModel extends Eloquent {
protected $connection = 'mysql2';
}
आप setConnectionविधि या onस्थिर विधि के माध्यम से रनटाइम पर कनेक्शन को परिभाषित कर सकते हैं :
class SomeController extends BaseController {
public function someMethod()
{
$someModel = new SomeModel;
$someModel->setConnection('mysql2'); // non-static method
$something = $someModel->find(1);
$something = SomeModel::on('mysql2')->find(1); // static method
return $something;
}
}
नोट डेटाबेस में तालिकाओं के साथ संबंध बनाने के प्रयास के बारे में सावधान रहें! यह करना संभव है, लेकिन यह कुछ कैविटीज़ के साथ आ सकता है और इस बात पर निर्भर करता है कि आपके पास कौन सा डेटाबेस और / या डेटाबेस सेटिंग्स हैं।
एकाधिक डेटाबेस कनेक्शन का उपयोग करना
कई कनेक्शनों का उपयोग करते समय, आप प्रत्येक connectionको कनेक्शन विधि के माध्यम से एक्सेस कर सकते हैं DB। इस विधि को nameपारित connectionअपनी config/database.phpविन्यास फाइल में सूचीबद्ध एक कनेक्शन के अनुरूप होना चाहिए :
$users = DB::connection('foo')->select(...);
आप कनेक्शन उदाहरण पर getPdo विधि का उपयोग करके कच्चे, अंतर्निहित PDO उदाहरण तक भी पहुँच सकते हैं:
$pdo = DB::connection()->getPdo();
उपयोगी कड़ियाँ
- Laravel 5 कई डेटाबेस कनेक्शन FROM
laracasts.com
- लारवल FROM में कई डेटाबेस कनेक्ट करें
tutsnare.com
- Laravel FROM में कई DB कनेक्शन
fideloper.com
class SomeModel extends Model {बना रहे हों, तो आप यह सुनिश्चित कर सकते हैं कि आपने env फ़ाइल से मान निकाले हैं या नहीं। यह भीenv('DB_DATABASE', 'name')बताएं कि @sba ने जैसा उल्लेख किया है