这是一段简单的代码,我已经尝试过$Projects = (Object) $array
和其他将数组转换为对象以及将对象转换为数组的方法。我的问题始终保持不变,在填充$_GET
时,PE
表中的所有记录都被发送到ProjectEmployees
变量中。在此基础上,我使用foreach
遍历每个Project IDs
,并获取相应的项目并将其添加到Projects object
中。然后将该对象发送到一个表单,在该表单中将读出并显示所有数据。
我的问题是,在foreach循环中,$Projects
对象被覆盖,并且只输出1条记录,即使我知道应该有2条记录,但它也是第二条记录,所以我知道它是覆盖,而不仅仅是跳过。我知道它正在达到这一点,因为find函数是一个select * where the EmployeeID = ID
,我已经在数据库中对其进行了测试,所以我知道它应该可以工作。
public function list() {
if (isset($_GET['employee'])){
$ProjectEmployees = $this->ProjectEmployeesTable->find('EmployeeID', $_GET['employee']);
foreach($ProjectEmployees as $ProjectEmploy){
$Projects = $this->projectsTable->find('ProjectID', $ProjectEmploy->ProjectID);
}
}
因此,我的问题是,是否有任何方法可以根据ProjectEmployees
变量中的项目IDs
将我想要的ProjectsTable
记录正确地迭代到Projects
中。
发布于 2018-07-17 04:04:42
这是对@rashid的临时回答,向他展示如何将数组从@DavidCasttelanoo转换为对象。这不是对原始问题的回答。这是对他的评论的回答,他需要一个对象而不是数组
$objectProjects = new $Projects();
foreach ($arrayProjects as $key => $value)
{
$objectProjects->$key = $value;
}
项目现在是一个对象。
https://stackoverflow.com/questions/51367691
复制相似问题