2016-07-31 33 views
0

在我的模型中有一个定义的hyperMorph方法,在我的Neo4j数据库中有一些多态关系,我试过这两行来检查关系的存在,但都返回true,即使在三个节点之间没有关系:如何检查Neoeloquent中是否存在超边?

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

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

哪里是这两个问题?

回答

0

您调用的方法getEdge($hyper),构建与给定模型的关系并返回它,用exists它将检查关系的两边是否存在以及它们是否存在于数据库中(模型不是关系之间),因此它总是给你,因为你用getEdge构建它,所以存在这种关系。

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

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

+0

很好的说明,谢谢 – Omid