紧凑():未定义的变量:用户
compact(): Undefined variable: users
这里我试图获取所有项目->id,它们与 team->project_id 匹配并且关系正常,但我使用的变量 $users 显示未定义。可能是什么问题呢??
这里是控制器代码
public function index()
{
if (Auth::user()->role->id == 1) {
$projects = Project::all();
$teams = Team::all();
foreach ($teams as $team) {
$users = User::whereIn('id', $team->members)->get();
}
return view('project.index', compact('projects', 'users'));
}
}
你没有初始化用户脱离条件,所以如果没有团队,就不会有用户:
试试这个:
$users = collect();
foreach ($teams as $team) {
$users = User::whereIn('id', $team->members)->get();
}
return view('project.index', compact('projects', 'users'));
但请记住,您的循环每次都会覆盖用户,因此您只会获得最后一个团队的用户:D
你的问题出在你的循环中。
您的代码中有一些模糊的部分。
1) 在每个循环中你覆盖你的 $users
变量:我会假设你需要一个数组所以尝试像这样的东西:
$users[] = User::whereIn('id', $team->members)->get();
*注意确保 Team
table 中的 members
列实际包含 ID。
2) compact()
的用法是正确的,但如果您的 $user
为空,那么您将尝试从中获取未定义的 属性。此外,如果最后一次迭代是空的,那么你会覆盖你的变量,那么你的 $user
是空的,所以你只是 return 前端中的一个空数组。
3) 使用whereIn
意味着你的列有超过1个Ids
。这通常是一种不好的做法。您应该使用数据透视表 table 或将每条记录存储在不同的行中。
4) 预定义数组。如果没有团队,将永远不会访问 foreach
循环,从而导致 php 错误未定义 $users
.
这里我试图获取所有项目->id,它们与 team->project_id 匹配并且关系正常,但我使用的变量 $users 显示未定义。可能是什么问题呢??
这里是控制器代码
public function index()
{
if (Auth::user()->role->id == 1) {
$projects = Project::all();
$teams = Team::all();
foreach ($teams as $team) {
$users = User::whereIn('id', $team->members)->get();
}
return view('project.index', compact('projects', 'users'));
}
}
你没有初始化用户脱离条件,所以如果没有团队,就不会有用户:
试试这个:
$users = collect();
foreach ($teams as $team) {
$users = User::whereIn('id', $team->members)->get();
}
return view('project.index', compact('projects', 'users'));
但请记住,您的循环每次都会覆盖用户,因此您只会获得最后一个团队的用户:D
你的问题出在你的循环中。
您的代码中有一些模糊的部分。
1) 在每个循环中你覆盖你的 $users
变量:我会假设你需要一个数组所以尝试像这样的东西:
$users[] = User::whereIn('id', $team->members)->get();
*注意确保 Team
table 中的 members
列实际包含 ID。
2) compact()
的用法是正确的,但如果您的 $user
为空,那么您将尝试从中获取未定义的 属性。此外,如果最后一次迭代是空的,那么你会覆盖你的变量,那么你的 $user
是空的,所以你只是 return 前端中的一个空数组。
3) 使用whereIn
意味着你的列有超过1个Ids
。这通常是一种不好的做法。您应该使用数据透视表 table 或将每条记录存储在不同的行中。
4) 预定义数组。如果没有团队,将永远不会访问 foreach
循环,从而导致 php 错误未定义 $users
.