0

我有 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

4

2 回答 2

2

也许您需要在“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}');
于 2019-03-28T17:10:40.477 回答
0

我终于找到了问题所在。problem来自neoeloquent ORM.他们想要构建a nosql schemaless graph based ORM但他们的思维方式是基于 .sql that eloquent ORM is based on所以我应该在将用户添加到组时明确定义两种方式:

$g->users()->attach($u)然后$u->userGroups()->attach($g)。在eloquent中,通过定义$g->users()->attach($u),我可以获得一个组的所有用户并获得给定用户的组。neoeloquent但事实并非如此。但是neo4j dbms通过创建一个one way。所以问题是neoeloquent

于 2019-03-29T09:04:36.937 回答