使用CakePHP我得到多维数组,我似乎无法弄清楚为什么有时我可以通过键访问它们,有时我不能。例如,我有一个带有相关Plant信息的雇员模型,find all正确地获取两组数据并将其存储在一个数组中。当我使用Emp->find('all')
$var['Emp']
和$var['Plant']
。这给出了一个很好的键数组,像这样:
$Employee = Array(
[Plant] => Array(
[0] => Array(
[ID]...
然而,对于一些员工(管理员),他们没有与植物列表相关联,所以我需要给他们一个所有植物周期的列表,而不是使用他们相关的植物数据,所以我使用Plant->find('all')
。问题是生成的数组格式很奇怪,如下所示:
$plants = Array(
[0] => Array(
[Plant] => Array(
[ID] =>...
所以我不能访问$plants['Plant']
,我不能使用顶层数组作为我的$Employee['Plant']
数组。我知道我可以使用foreach
并重写$plants
数组以匹配其他格式,但我有一个完整的网站,我正在转换为蛋糕的find('all')
函数,所以我想知道为什么这种差异正在发生,以及我如何以键方式访问第二个数组。
在第一种情况下,您正在获取Employee的数据,并且它使用Model名称对关联的模型进行分组。在第二种情况下,您将直接返回所有植物的数组,这就是CakePHP返回对象的方式。您需要遍历数组来访问每个Plant对象。
我希望这有意义。