Соедините граф БД и SQL в laravel

Я хочу подключить несколько баз данных в Laravel 5.5. Я пытался с помощью этот но это не похоже на работу. Я хочу использовать https://github.com/graphaware/neo4j-php-client как клиент для подключения к графовой базе данных, я хотел использовать это для непосредственного выполнения запросов шифрования.

Какие изменения я должен внести в config / database.php, чтобы приспособиться к такому условию, и как мне получить доступ к каждой базе данных из кода?

0

Решение

Вы можете создать собственного провайдера, например, в App\Providers\Neo4jServiceProvider.php и определите 2 или более соединений с клиентом:

class Neo4jServiceProvider extends ServiceProvider
{
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(Client::class, function() {
return ClientBuilder::create()
->addConnection('server1', getenv('NEO4J_1_HOST'))
->addConnection('server2', getenv('NEO4J_2_HOST'))
->build();
});
}
}

Затем вы регистрируете провайдера в своем приложении, добавьте его в providers массив из config/app.php файл :

App\Providers\Neo4jServiceProvider::class,

Добавьте параметры соединений для ваших neo4j dbs в файл .env.

Далее вы можете внедрить этот сервис в любом месте и запросить любую базу данных:

class MyController
{

private $client;

public function __construct(Client $client)
{
$this->client = $client;
}

public function doSomeQueries()
{
// Query DB 1
$result = $this->client->run('MATCH (n) RETURN count(n)', null, null, 'server1');
// Query DB 2
$result2 = $this->client->run('MATCH (n) RETURN count(n)', null, null, 'server2');
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]