使用方法和数据透视表Laravel 5

时间:2015-04-15 17:48:49

标签: php laravel-5

以下是我如何获得项目和小组:

$groups = Group::with('projects')->get();

在我的project_group数据透视表中有admin_id字段,我需要检查该字段,例如只接受项目和组where admin_id = 1,因此我需要将所有项目组都归档在数据透视表中等于1。

这是我的群组模型:

public function projects(){
        return $this ->belongsToMany('App\Project','project_group')->withPivot('admin_id');
        }

以下是1组的示例,但不知道如何为所有组服务:

Group::find(1)->proejcts()->where('admin_id', '=',1)->get();

1 个答案:

答案 0 :(得分:1)

这将只为您提供admin_id = 1

项目
$groups = Group::with(['projects' => function($q){
    $q->where('admin_id', 1);
}])->get();

如果您只想要包含admin_id = 1的论坛,则需要添加whereHas条件:

$adminIdCondition = function($q){
    $q->where('admin_id', 1);
};

$groups = Group::with(['projects' => $adminIdCondition])
               ->whereHas('projects', $adminIdCondition)
               ->get();;

对于第二种情况的更好的语法,请查看this other answer