ভিতরে .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();
উপকারী সংজুক
- লারাভেল 5 একাধিক ডাটাবেস সংযোগ FROM
laracasts.com
- লারাভেল এফআরএম-এ একাধিক ডাটাবেস সংযুক্ত করুন
tutsnare.com
- লারাভেল এফআরএম এ একাধিক ডিবি সংযোগ
fideloper.com
class SomeModel extends Model {এবং নিশ্চিত করুন যে আপনি যেমন env ফাইল থেকে সরানো মান নিশ্চিত করতেenv('DB_DATABASE', 'name')যখন আপনি database.php ফাইলটি নতুন ডিবি কনফিগারেশন অ্যারে তৈরি হিসাবে @sba উল্লেখ করেছেন