1

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

我遇到的问题是兴趣已经存在(按名称属性唯一)并且我只想从创建的人和兴趣节点创建关系。

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

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

在我的存储库中的创建用户函数中,我有一个部分用于搜索兴趣并在存在时返回一个。问题是我不知道如何创建从 People to Interest 的关系。我尝试将其另存为

 $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);
            }

        }

但是我得到“传递给 Vinelab\NeoEloquent\Eloquent\Relations\HasOneOrMany::save() 的参数 1 必须是 Illuminate\Database\Eloquent\Model 的实例,给出的 Illuminate\Database\Eloquent\Collection 的实例”

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

有任何想法吗?

4

0 回答 0