CakePHP访问查找('all')数组


CakePHP accessing find('all') arrays

使用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对象。

我希望这有意义。