省略 laravel 集合中的 foreach 循环
Omiting foreach loop through laravel collection
我在基于 Laravel 5.5
构建的应用程序中有一个小的条件循环,我正在学习 collections
当我了解更多时这似乎很了不起,目前我有以下代码在我的控制器中:
$milestone = Milestone::where('unique_id', $id)
->with('project.teams.users.profile')
->first();
// $users = $milestone->project->pluck('teams.users');
$users = [];
foreach ($milestone->project->teams as $team)
{
foreach($team->users as $user)
$users[] = $user;
}
return response()->json(['users' => $users], 200);
在我的代码中,我尝试 $users = $milestone->project->pluck('teams.users');
没有给我正确的结果,在我的模型里程碑中,以下是关系:
public function project()
{
return $this->belongsTo('App\Models\Team\Project', 'project_id');
}
在我的项目关系是:
public function teams()
{
return $this->belongsToMany('App\Models\Team\Team', 'project_team', 'project_id', 'team_id');
}
在我的 Teams 模型中:
public function users()
{
return $this->belongsToMany('App\Models\User')->withTimestamps();
}
这可能是 project->teams
和 teams->user
之间的两个多对多关系 我没有得到结果。
我想通过 collection
省略这个 foreach
循环,谁能指导我如何通过相同的方式实现它,谢谢
我在基于 Laravel 5.5
构建的应用程序中有一个小的条件循环,我正在学习 collections
当我了解更多时这似乎很了不起,目前我有以下代码在我的控制器中:
$milestone = Milestone::where('unique_id', $id)
->with('project.teams.users.profile')
->first();
// $users = $milestone->project->pluck('teams.users');
$users = [];
foreach ($milestone->project->teams as $team)
{
foreach($team->users as $user)
$users[] = $user;
}
return response()->json(['users' => $users], 200);
在我的代码中,我尝试 $users = $milestone->project->pluck('teams.users');
没有给我正确的结果,在我的模型里程碑中,以下是关系:
public function project()
{
return $this->belongsTo('App\Models\Team\Project', 'project_id');
}
在我的项目关系是:
public function teams()
{
return $this->belongsToMany('App\Models\Team\Team', 'project_team', 'project_id', 'team_id');
}
在我的 Teams 模型中:
public function users()
{
return $this->belongsToMany('App\Models\User')->withTimestamps();
}
这可能是 project->teams
和 teams->user
之间的两个多对多关系 我没有得到结果。
我想通过 collection
省略这个 foreach
循环,谁能指导我如何通过相同的方式实现它,谢谢