Commit 0e693886 authored by Hamid Alaei V's avatar Hamid Alaei V

fix dsn config when not unix socket

parent 7445ea6c
......@@ -4,7 +4,6 @@ namespace Jenssegers\Mongodb;
use Illuminate\Database\Connection as BaseConnection;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use MongoDB\Client;
class Connection extends BaseConnection
......@@ -151,7 +150,7 @@ class Connection extends BaseConnection
}
/**
* Determine if the given configuration array has a UNIX socket value.
* Determine if the given configuration array has a dsn string.
*
* @param array $config
* @return bool
......@@ -162,22 +161,14 @@ class Connection extends BaseConnection
}
/**
* Get the DSN string for a socket configuration.
* Get the DSN string form configuration.
*
* @param array $config
* @return string
*/
protected function getDsnString(array $config)
{
$dsn_string = $config['dsn'];
if (Str::contains($dsn_string, 'mongodb://')) {
$dsn_string = Str::replaceFirst('mongodb://', '', $dsn_string);
}
$dsn_string = rawurlencode($dsn_string);
return "mongodb://{$dsn_string}";
return $config['dsn'];
}
/**
......
<?php
class DsnTest extends TestCase
{
public function test_dsn_works()
{
$this->assertInstanceOf(\Illuminate\Database\Eloquent\Collection::class, DsnAddress::all());
}
}
class DsnAddress extends Address
{
protected $connection = 'dsn_mongodb';
}
......@@ -51,6 +51,7 @@ class TestCase extends Orchestra\Testbench\TestCase
$app['config']->set('database.default', 'mongodb');
$app['config']->set('database.connections.mysql', $config['connections']['mysql']);
$app['config']->set('database.connections.mongodb', $config['connections']['mongodb']);
$app['config']->set('database.connections.dsn_mongodb', $config['connections']['dsn_mongodb']);
$app['config']->set('auth.model', 'User');
$app['config']->set('auth.providers.users.model', 'User');
......
......@@ -11,6 +11,12 @@ return [
'database' => 'unittest',
],
'dsn_mongodb' => [
'driver' => 'mongodb',
'dsn' => 'mongodb://mongodb:27017',
'database' => 'unittest',
],
'mysql' => [
'driver' => 'mysql',
'host' => 'mysql',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment