当我在Zend Framework 1中尝试列出用户时出现错误:
主键列(id)不是此表()“
中的列控制器:
public function listAction(){
$mapper = new Application_Model_UserMapper();
$users = $mapper->fetchAll();
Mapper:
public function fetchAll($where=null)
{
$resultSet = $this->getDbTable()->fetchAll($where);
return $resultSet;
dbtable
class Application_Model_DbTable_User extends Zend_Db_Table_Abstract {
protected $name = 'users';
protected $_primary ='id';
}
模型
class Application_Model_User {
protected $_id;
protected $_useremail;
protected $_usergroup;
protected $_password;
protected $_password_salt;
Sql:
CREATE TABLE users (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
useremail VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(32) NULL,
password_salt VARCHAR(32) NULL,
usergroup VARCHAR(12) NULL,
real_name VARCHAR(150) NULL
);
CREATE INDEX "idUser" ON "users" ("useremail");
答案 0 :(得分:3)
设置表名的属性是$ _name,而不是$ name。
https://github.com/zendframework/zf1/blob/master/library/Zend/Db/Table/Abstract.php#L131