为什么这个模型数据不能正确加载到页面控制器中?

时间:2010-09-21 14:53:27

标签: cakephp model

我有一个带有数据的模型,我想用它来填充主页上的“Recent XYZ”部分,该部分由Pages控制器控制。

在Pages控制器中,我有以下代码:

$this->loadModel('Model');
$this->set('datas', array($this->Model->find('all', array('limit' => 5))));

然后,在Home.ctp中,我尝试通过以下方式访问数据:

if(!empty($datas)) { foreach($datas as $data):
echo $data['0']['Model']['field'];
endforeach; }

我在find('all')上运行了调试,它返回了一个数组,但我没有看到我的代码有什么问题。我尝试使用find('list')并找到('first')并将$ data ['0'] ['Model'] ['field']更改为$ data ['Model'] ['field ']必要时作为结果。但是,它仍然为Model提供了一个Undefined Index错误。

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

如果你用foreach迭代它,你不应该把数字键。所以,

echo $data['0']['Model']['field'];

应该是:

echo $data['Model']['field'];

编辑:因此,澄清一下,如果您使用find('all'),并使用foreach迭代返回的数组,则需要$data['Model']['field']。如果您没有迭代,但只想要第一个结果,那么您将使用$data[0]['Model']['field']。如果您使用的是find('first'),则可以使用$data['Model']['field'],在这种情况下您不希望使用foreach

所以我对此的背景感到有些困惑。您已将Pages控制器复制到controllers目录中,并将上述代码放在display()方法中?将pr($datas)放入home.ctp时,您会得到什么?