Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从两个表中选择Laravel 5_Php_Mysql_Laravel 5 - Fatal编程技术网

Php 从两个表中选择Laravel 5

Php 从两个表中选择Laravel 5,php,mysql,laravel-5,Php,Mysql,Laravel 5,我使用Laravels多对多关系。我有两个表projects和group和pivot表project\u group 现在我可以这样做: $groups = \App\Project::findOrFail(Auth::user() -> id)->groups()->where('adminid','=',Auth::user()->id)->get(); Design(Project2,Project3) SEO(Porject1) 它将只返回组…如下所示:

我使用Laravels多对多关系。我有两个表
projects
group
和pivot表
project\u group

现在我可以这样做:

$groups = \App\Project::findOrFail(Auth::user() -> id)->groups()->where('adminid','=',Auth::user()->id)->get();
Design(Project2,Project3)
SEO(Porject1)
它将只返回组…如下所示:

Design
SEO
但我需要像这样返回:

$groups = \App\Project::findOrFail(Auth::user() -> id)->groups()->where('adminid','=',Auth::user()->id)->get();
Design(Project2,Project3)
SEO(Porject1)
所以对于每个循环,我需要得到组和所有链接到该组的项目

以下是我与项目模块的关系:

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

您可以在组模型中定义关系的倒数

public function projects(){
    return $this->belongsToMany('App\Project','project_group')->withPivot('admin_id');
}
然后,在你雄辩的提问中使用它

$groups = Group::with('projects')->get();
你将能够在你的小组中循环,并在每个小组中获得所有项目

foreach($groups as $group) {
  foreach($group->projects as $project){
    //your project
  }
}
我不太理解
Auth::user()->id
的用法,但是如果您只想要当前用户是admin的项目,可以在with函数中使用一个条件

$groups = Group::with(['projects' => function($query) {
  $query->where('adminid', Auth::user()->id)
}])->get();
Auth::user()->id
返回当前登录用户的
id
。在Laravel5中,有一个中间件可以检查用户是否登录,您可以使用
Auth::user()
访问该记录(字段和关系)。