hasManyThrough基于模型的中间关系?

时间:2016-07-21 17:29:01

标签: php eloquent

我有3个表:RoleThreadPermissionThread。他们的表结构如下:

Role
  - id
  - name
ThreadPermission
  - id
  - role_id
  - thread_id
  - is_Moderator (bool)
Thread
  - id
  - title

这是ThreadPermission数据的屏幕截图:

enter image description here

我实际上很难解释这种关系(这就是编辑的原因)

因此,当我创建一个新的Thread对象时,我还会创建一个新的ThreadPermission对象,我将is_Moderator属性分配给每个Role,希望您能看到在上面的屏幕截图中

我希望通过Thread方法访问Role is_Moderator等于TRUE ThreadPermission。我需要解决第2个问题,首先建立RoleThread之间的关系,第二个问题是只显示Thread is_Moderator == TRUEThreadPermission

要处理第一个问题,我尝试在我的角色类中实现它:

class Role extends Eloquent {

    public function moderatedThreads() {
        // Hopefully I can also 'ThreadPermission'->where('is_Moderator', TRUE)
        return $this->hasManyThrough('Thread', 'ThreadPermission', 'role_id', 'id')->get();
    }

}

但是当我尝试var_dump方法时:

var_dump($app->user->roles()->moderatedThreads());

它返回一个空对象

object(Illuminate\Database\Eloquent\Collection)#203 (1) {
  ["items":protected]=>
  array(0) {
  }
}

我很困惑,实施的哪一部分让我搞砸了。你们能看到我能看到的东西吗?

0 个答案:

没有答案