0

在我的模型中定义了 hyperMorph 方法,在我的 Neo4j DB 中有一些多态关系,我尝试了这两行来检查关系的存在,但都返回 true ,即使三个节点之间没有关系:

$e=$parent->function($related)->edge($hyper)->exists();

$e=$parent->function($related)->getEdge($hyper)->exists();

这两个问题在哪里?

4

1 回答 1

0

您正在调用的getEdge($hyper)方法构造与给定模型的关系并返回它,exists它将检查关系的双方是否存在以及它们是否存在于数据库中(模型不是它们之间的关系),因此它总是告诉你关系存在,因为你用getEdge.

为了处理与仅在存在关系时获取记录有关的查询,请使用hasand whereHas

https://laravel.com/docs/5.2/eloquent-relationships#querying-relations在查询关系存在下。

于 2016-08-01T06:47:21.803 回答