在我的模型中有一个已定义的hyperMorph方法,在我的Neo4j DB中有一些多态关系,我已经尝试过这两行检查关系是否存在但两者都返回true,即使三个节点之间没有关系:
$e=$parent->function($related)->edge($hyper)->exists();
和
$e=$parent->function($related)->getEdge($hyper)->exists();
这两个问题在哪里?
答案 0 :(得分:0)
您正在调用的getEdge($hyper)
方法,构建与给定模型的关系并返回它,exists
它将检查关系的两个边是否存在以及它们是否存在于数据库(模型不是它们之间的关系),因此,自从您使用getEdge
构建它之后,它始终会告诉您关系存在。
为了处理仅在存在关系时提取记录的查询,请使用has
和whereHas
。
https://laravel.com/docs/5.2/eloquent-relationships#querying-relations。