Laravel 5与条件的嵌套关系

时间:2016-10-27 16:44:24

标签: php mysql laravel

我是这些表格:

用户

| ID | ROLE_ID | clan_id |

角色

| ID |蛞蝓|

部族

| ID |

我需要抓住所有使用slug的用户,例如' leader'

我该怎么做?

到目前为止我得到了什么:

class clan extends Model{
    public function leader() 
    {
        $leader = User::whereHas('role', function($query) {
            $query->where('slug', 'leader');
        })->where('clan_id', $this->id)->get();

        return $leader;
    }
}

但这并不聪明。而不是这个,我想让它加入我的氏族表

部族:

| ID | leader_user_id |

所以我可以轻松访问它。

非常感谢:)

1 个答案:

答案 0 :(得分:1)

您可以在clan和user之间创建location = /app.js { root /path/to/file/dir; rewrite ^ /client.app.js break; } 关系:

one-to-many

public function users() { return $this->hasMany('App\User'); } 函数中,您可以写为:

leader()

<强>更新

以下评论的回复

您可以将范围创建为:

public function leader() 
{
    $leader = $this->users()->whereHas('role', function($query) {
        $query->where('slug', 'leader');
    })->get();

    return $leader;
}

您可以将public function scopeLeader($query) { return $query->with(['users' => function($query) { $query->whereHas('role', function($q) { $q->where('slug', 'leader'); }); } 取为:

Clan