问题标签 [neo4j-php-ogm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
99 浏览

php - Neo4j find only 10 movies

I found today in slack neo4j that it is possible to use ogm in php.

https://github.com/graphaware/neo4j-php-ogm

I use the examples demonstrated in test folder with person and movie table.

But I want to have only 10 movies, but I now have all movies.

This is my code in application :

Thanks already for responses.

0 投票
1 回答
101 浏览

php - neo4j ogm 并非返回所有关系

这是我的 omg 课程:

我使用这段代码:

但它只返回 1 个关系,而不是全部,有什么问题?

0 投票
1 回答
243 浏览

neo4j - Neo4j PHP OGM 带身份验证

我想知道:如果我使用用户名和密码身份验证,通过 neo4j-php-ogm 库创建与 Neo4j 的连接的最佳做法是什么?

在文档中,它指出连接是通过以下方式创建的:

所以我在我的图形管理器中使用相同的:

我觉得这不是最安全的方式,因为我只使用 http 并在 URL 中发送凭据。建立连接(包括身份验证)的更好方法是什么?

旁注:而Manager::create不是EntityManager::create文档中提到的,是因为如果我没记错的话,通过 composer 安装库会获得比当前在 GitHub 上的旧版本。

0 投票
1 回答
68 浏览

php - 只能保存单个属性

我有以下“用户”类:

我正在尝试使用它,如图所示:

但是,如果我在 Neo4j“浏览器”中运行以下查询,我可以看到正在创建以下内容:

似乎跳过了其他属性的创建。

我相信我错过了一些非常基本的东西。上面的代码有什么问题?

0 投票
1 回答
265 浏览

neo4j - 如何使用 NEO4J-PHP-OGM 访问超过 2 个关系的节点属性

我无法理解如何使用 neo4j-php-ogm 库访问超过 2 个关系的属性。

例如,我有一个“用户”节点,它连接到许多“资源”节点,而这些节点又连接到固定数量的预定义“元资源”节点。“资源”节点具有属性,“元资源”节点具有每种资源类型的元属性。我如何知道从“用户”节点开始访问“元资源”节点的属性?在 Neo4j 中,这样一条路线如下所示:

我的示例用户实体:

我的示例资源实体:

还有我的示例 MetaResource 实体:

最后是来自我的控制器的代码,它建立了关系:

如果我现在查看 Neo4j 网络控制台,所有关系和节点都已正确插入。

现在,如果我获得了用户的资源,$user->getResources()我成功获得了所有资源对象,但是“$metaResource”属性始终为 NULL,而不是我的 MetaResource 实体的预期对象。例如,如果我这样做:

然后它只输出 NULL。

另一方面,如果我直接获取资源对象(例如使用$resource = $em->getRepository(Resources::class)->findOneById(123)),然后尝试使用$resource->getMetaResource()它获取连接的 MetaResource。我错过了什么?

干杯

0 投票
2 回答
238 浏览

symfony - graphaware/neo4j-php-ogm 事件监听器

我最近创建了一个新的 symfony 项目(3.1),它依赖于 graphaware/neo4j-php-ogm 和 neo4j/neo4j-bundle 来管理我的数据库。

然后我创建了一个名为 User 的新实体类,具有属性(登录名、密码……),我想在刷新事件发生之前自动设置当前日期(在 preFlush 上)。我在 neo4j-php-ogm/src/Events.php ( https://github.com/graphaware/neo4j-php-ogm/blob/master/src/Events.php )中看到了 PRE_FLUSH 常量,但我还没有找到文档中有关它的任何信息。

好吧,我的问题是:我们可以在 OGM 的实际版本中使用此功能吗?如果是,您有使用示例吗?

谢谢您的帮助 !

0 投票
1 回答
117 浏览

php - php-neo4j-ogm EntityManager GetRepository->FindAll() 返回空对象

我正在努力从 neo4j 数据库中读取数据。我使用 neo4j-php-ogm 库中提供的 entitymanager。

我以 json 格式返回它,输出是:[{},{},{}]

这是我的员工实体类:

我错过了什么?

0 投票
1 回答
108 浏览

php - PHP neo4j OGM - 检测到递归

我在我的项目中使用实体管理器。我可以成功地将我的实体和它们之间的关系读取/添加到数据库,但有一个问题。

我有两个节点 Employee 和 Document,它们之间的关系是 Employee HAS Document。

Emloyee 的 php 类:

文档的 php 类:

然后我有两个 API 端点我使用 REST API 的 Slim 框架基本上我有两种返回数据的方法。

对于员工:

文件:

所以我的问题是当我取消注释时

在文档类中

我得到一个运行时错误检测到递归

没有那条线一切正常。

有人可以帮我我错过了什么吗?

0 投票
0 回答
69 浏览

neo4j - 查询中参数对象的最大大小?

我正在为 neo4j 使用 graphaware php 客户端

当使用“大”参数对象(大约 200 行漂亮的打印,字段值最多 30 个字符)运行查询时,它会冻结。

对象$queryparams看起来像

在哪里

  1. 一切都在数据包装器中
  2. 200 个条目中的大多数是查询从不使用的垃圾

线

变得长期运行并被 nginx 超时。我试过了

无济于事。

在 neo4j 浏览器中使用相同的参数运行相同的查询,我会立即得到结果。

关于导致问题的任何想法?它是图形感知的吗?

编辑:我发布得太快了,但这出乎我的意料:在我提到的垃圾内部"0": ...某处有一个字段。$queryparams这就是导致问题的原因。这是预期的行为吗?

0 投票
0 回答
398 浏览

php - 使用 Neo4J PHP OGM EntityManager 建立关系实体

我正在尝试使用以下简单方法使用GraphAware Neo4j PHP OGM 库为我在 Neo4j 数据库中的关系构建一个实体对象:

这里我们有实体类,关系优先:

然后,启动节点:

..和结束节点:

显然,对节点实体非常有效的方法会触发以下关系错误:

致命错误:调用 /vendor/graphaware/neo4j-php-ogm/src/EntityManager.php 中未定义的方法 GraphAware\Neo4j\OGM\Metadata\RelationshipEntityMetadata::hasCustomRepository()

有什么建议我可以解决这个问题吗?我什至尝试使用EntityManager::createQuery()以下方式:

但是,显然,addEntityMapping()也不适用于关系实体!(虽然它可能是一个功能,而不是一个错误):

可捕获的致命错误:传递给 GraphAware\Neo4j\OGM\Hydrator\EntityHydrator::hydraNode() 的参数 1 必须实现接口 GraphAware\Common\Type\Node,给出 GraphAware\Bolt\Result\Type\Relationship 的实例,在 /vendor 中调用/graphaware/neo4j-php-ogm/src/Query.php 在第 145 行,并在第 232 行的 /vendor/graphaware/neo4j-php-ogm/src/Hydrator/EntityHydrator.php 中定义

因此,我最终可以使用这个库在 Neo4J 中轻松定义和存储关系实体,但不确定如何使用 EntityManager 轻松检索它,就像我可以使用节点一样。

任何帮助将非常感激!

正如下面评论中的要求,这些是我正在使用的 GraphAware 包: