CakePHP模型,fieldlist中的未知列

时间:2013-02-09 10:25:27

标签: database cakephp model cakephp-2.0

我有这个模型文件:

// 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 {
}

1 个答案:

答案 0 :(得分:1)

如果您使用不同的显示字段,您还需要告诉模型:

$this->displayField = 'screen_name';

对于“名称”和“标题”,蛋糕能够自动检测。

相关问题