我想在Laravel 5.5中连接多个数据库。我尝试使用this,但它似乎不起作用。我想使用https://github.com/graphaware/neo4j-php-client作为客户端连接到图表数据库,我想使用它的原因是直接运行cypher查询。
我应该在config / database.php中做出哪些更改以适应这种情况,以及如何从代码中访问每个数据库?
答案 0 :(得分:1)
您可以创建自定义提供程序,例如在<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>[RETRACTED]</groupId>
<artifactId>[RETRACTED]</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>[RETRACTED]</name>
<description>[RETRACTED]</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
中并定义与客户端的2个或更多连接:
App\Providers\Neo4jServiceProvider.php
然后在应用程序中注册提供程序,将其添加到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
在.env文件中添加neo4j dbs的连接参数。
接下来,您可以在任何地方注入此服务并查询任何db:
App\Providers\Neo4jServiceProvider::class,