热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

compact():未定义的变量:用户

在这里,我试图获取所有与team-project_id匹配的project-id,并且关系正常工作,但是我使

在这里,我试图获取所有与team-> project_id匹配的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)在每个循环中,您都会覆盖b变量:我将假设您需要一个数组,因此请尝试以下操作:

if a[0] return a[0] + orderedConcat(a[1:],b)
else:
return b[0] + orderedConcat(a,b[1:])

*小注释,请确保$users表中的列 $users[] = User::whereIn('id',$team->members)->get();
实际包含ID。

2)members的用法是正确的,但是如果Team为空,则您将尝试从中获取未定义的属性。此外,如果最后一个信号为空,则会覆盖变量,然后compact()为空,因此您只需在FrontEnd中返回一个空数组即可。

3)使用$user意味着您的列有1个以上的$user。通常这是一个坏习惯。您应该使用数据透视表或将每条记录存储在不同的行中。

4)预定义数组。如果没有团队,将永远不会访问whereIn循环,从而使您遇到未定义Ids的php错误。


推荐阅读
author-avatar
豪哥帅366
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有