Я хочу использовать MySQL и MongoDB в моем Laravel проекте, я знаю, что могу определить несколько массив соединений в database.php файл и назвать их люблю:Как использовать несколько соединений с базами данных в проекте laravel?
$users = DB::connection('foo')->select(...);
, но моя проблема заключается в том, как я могу использовать MongoDB и MySQL рядом друг с другом в проекте?
Настоящая проблема здесь .env
file, так как она использует только одну конфигурацию базы данных.
поэтому позвольте мне ясно, что это для вас это мой файл database.php в Laravel v5.3:
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'iranad'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'mysql'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
'mongodb' => [
'driver' => 'mongodb',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '27017'),
'database' => env('DB_DATABASE'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'options' => [
'database' => 'admin'
]
],
],
И это мой .env
файл:
APP_ENV=local
APP_KEY=base64:NN3Me+qA1UOfdYW2SQyAXtxODazCAYBAKfFdRAqcakg=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=mysql
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_KEY=
PUSHER_SECRET=
Как вы можете видеть мой по умолчанию соединение с базой данных - mysql, а в .env - в конфигурации файла установлено значение mysql, теперь как я могу использовать mongoDB в своем приложении?
FYI: Я хочу, чтобы mysql был соединением по умолчанию, и в некоторых случаях я использую mongodb.