我有3个表:Role
,ThreadPermission
和Thread
。他们的表结构如下:
Role
- id
- name
ThreadPermission
- id
- role_id
- thread_id
- is_Moderator (bool)
Thread
- id
- title
这是ThreadPermission
数据的屏幕截图:
我实际上很难解释这种关系(这就是编辑的原因)
因此,当我创建一个新的Thread
对象时,我还会创建一个新的ThreadPermission
对象,我将is_Moderator
属性分配给每个Role
,希望您能看到在上面的屏幕截图中
我希望通过Thread
方法访问Role
is_Moderator
等于TRUE
ThreadPermission
。我需要解决第2个问题,首先建立Role
到Thread
之间的关系,第二个问题是只显示Thread
is_Moderator == TRUE
在ThreadPermission
要处理第一个问题,我尝试在我的角色类中实现它:
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) {
}
}
我很困惑,实施的哪一部分让我搞砸了。你们能看到我能看到的东西吗?