首页 > 解决方案 > 2 种多对多关系的方式只在 NeoEloquent 的一侧工作

问题描述

我有 2 个模型,User如下所示:UserGroupManyToMany relashionship

UserGroup.php

  public function users() {
        return $this->belongsToMany('App\User', 'IN');
    }

User.php

public function userGroup()
    {
        return $this->belongsToMany('App\UserGroup', 'IN');
    }

我添加了user一个usergroup这样的:

$u=User::find(myUserId)获取用户,并且$g=UserGroup::find(myGroupId)

而且$g->users()->attach($u)它工作得非常好,当我这样做时$g->users()->get(),它也可以工作。但是当我这样做时,$u->userGoup()->get()它返回一个空array。所以relashionship只在一侧起作用,usergroup->users而不是user->usergroup

标签: laravelneo4jneoeloquent

解决方案


也许您需要在“belongsToMany”函数中指定所有参数

return $this->belongsToMany('App\User', 'IN', '{COLUMN_NAME_ID_USERGROUP_ON_'IN'TABLE}', '{COLUMN_NAME_ID_USER_ON_'IN'TABLE}');

return $this->belongsToMany('App\UserGroup', 'IN', '{COLUMN_NAME_ID_USER_ON_'IN'TABLE}', '{COLUMN_NAME_ID_USERGROUP_ON_'IN'TABLE}');

推荐阅读