在laravel

时间:2017-12-07 07:16:09

标签: php neo4j graph-databases laravel-5.5

我想在Laravel 5.5中连接多个数据库。我尝试使用this,但它似乎不起作用。我想使用https://github.com/graphaware/neo4j-php-client作为客户端连接到图表数据库,我想使用它的原因是直接运行cypher查询。

我应该在config / database.php中做出哪些更改以适应这种情况,以及如何从代码中访问每个数据库?

1 个答案:

答案 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,