Vinelab / NeoEloquent - 对现有节点的实现

时间:2015-09-06 20:34:12

标签: neo4j laravel-5 neoeloquent

我正在使用Vinelab \ NeoEloquent为Neo4j开发一个新项目。我有一个注册,人们可以提供兴趣(作为节点)。在注册时,首先创建用户,然后创建兴趣(如果他们不存在),给定的关系是" Interested_In"从人到兴趣节点。

我遇到的问题是当兴趣已经存在时(名称属性是唯一的),我只想创建一个来自创建的人和兴趣节点的关系。

在我的人物模型中我有(因为1个人可以有很多兴趣):

  public function interest(){
        return $this->hasMany('App\Models\Interest','Interested_In');
    }

在我的存储库中创建用户函数中,我有一个部分,它搜索兴趣并返回一个(如果存在)。问题是我不知道如何创建从人到兴趣的关系。我试着把它保存为

 $interests = explode(',',$input['tags']);

        $int = new NeoInterestRepository();
        foreach($interests as $interest){
            $existing = $int->find($interest);
            if(count($existing)){
                $person->interest()->save($existing);
            }else{
                $my_interest = $int->create($interest);
                $person->interest()->save($my_interest);
            }

        }

但我得到#Argument 1传递给Vinelab \ NeoEloquent \ Eloquent \ Relations \ HasOneOrMany :: save()必须是Illuminate \ Database \ Eloquent \ Model的实例,Illuminate \ Database \ Eloquent \ Collection的实例给定'

我看到了associate()函数,但它仅用于BelongsTo,它似乎并不适用。

有什么想法吗?

0 个答案:

没有答案