我有这个模型文件:
// Myfan.php
class Myfan extends AppModel {
var $name = 'Myfan';
var $useTable = 'myfans';
function getAll(){
return $this->find('all');
}
}
我在我的控制器类中尝试了这个查询(它被简化以隔离问题)。
$Data=$this->Myfan->find('all',
array(
'limit' => 10
));
从MySQL我得到这个错误:
SQLSTATE[42S22]:
Column not found: 1054 Unknown column 'Myfan.name' in 'field list'
我的表结构如下:
CREATE TABLE IF NOT EXISTS `myfans` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`screen_name` varchar(50) CHARACTER SET utf8 NOT NULL,
`age` int(20) DEFAULT NULL,
`color` int(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=705314 ;
我从myapp_cake_model_default_mydatabase_myfans
文件夹中删除了/httpdocs/app/tmp/cache/models
文件。 Cake自动创建文件但我仍然得到相同的错误。我该如何解决这个问题?
我现在桌子里面甚至没有“名字”字段。但我不确定我之前是否有过。 Cake在哪里检查该字段?
修改:我将查询更改为此错误时收到同样的错误:
$Data=$this->Myfan->find('all', array(
'conditions' => array('Myfan.screen_name' => $screenname),
'order' => array('Myfan.id DESC')
));
也是我的AppModel
// AppModel.php
App::uses('Model', 'Model');
class AppModel extends Model {
}
答案 0 :(得分:1)
如果您使用不同的显示字段,您还需要告诉模型:
$this->displayField = 'screen_name';
对于“名称”和“标题”,蛋糕能够自动检测。