我正在使用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,它似乎并不适用。
有什么想法吗?