laravel多对多关系返回非相关数据

时间:2016-06-24 00:06:14

标签: php laravel orm eloquent relational-database

我的应用程序中有一段关系,基本上是

  

许多组织可以拥有许多用户,许多用户可以拥有多个组织。

这是一个多对多的关系,组织模型关系看起来像这样,

public function users() {
        return $this->belongsToMany('User')
                    ->where('admin', '>', 0)
                    ->orWhere('basic', '>', 0)
                    ->withPivot([
                        'start_date'       =>    'start_date as start_date',
                        'admin'            =>    'admin as admin',
                        'manager'          =>    'manager as manager',
                        'finance'          =>    'finance as finance',
                        'basic'            =>    'basic as basic',
                        'notifications'    =>    'notifications as notify'
                    ])
                    ->withTimestamps();
    }

和我与组织的用户模型关系看起来像这样,

public function organisations()
{
    return $this->belongsToMany('Organisation');
}

我遇到了这种关系的一个大问题,但是当我通过项目访问它时(一个项目有一个组织,有很多用户),我得到一个完整的用户列表,而不仅仅是组织的用户项目

为什么会这样?我认为这与我的组织模型中的Users()函数中的where子句有关吗?

1 个答案:

答案 0 :(得分:0)

我没有看到你使用所有这些代码的原因!我会说,简单地说:

组织班级

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



用户类

public function organisations() {
    return $this->hasMany('App\Organisation');
}