您可以在CakePHP中访问控制器中的模型数据吗?

时间:2010-09-19 16:13:46

标签: cakephp model controller

这可能是一个愚蠢的问题,但我无法在任何地方找到明确的答案。是否可以在Controller中访问模型数据,如果可以,如何访问?

我尝试了以下内容:

$this->set('mydata', $this->Model->find('all', 'conditions' => array('id' => 'someID')));

在控制器中通过它访问它:

$mydata['Model']['field']

但这似乎只适用于观点。

有没有办法访问控制器中的模型数据?原因是我需要对相关模型(belongsTo)执行计算,这些计算不能通过隐藏字段或任何内容来完成,因为在提交表单之前不会传递关联模型的ID。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

嗯,怎么样:

$myData = $this->Model->find('all', 'conditions' => /* ... */);

$myData['Model']['field'];
$myData['RelatedModel']['field'];

$this->set('mydata', $myData);

足够简单:)

Model :: find()返回你的数据,你不需要直接将它传递给Controller :: set(),你可以先把它弄乱,然后把它传递给你的视图。

但是,我建议反对它,如果你有一个Model :: messWithData($ data)并让模型处理数据,让控制器处理应用程序逻辑,那就更好了。请记住,胖模特,瘦小的控制者