当我尝试在 Zend Framework 1 中列出用户时出现错误:
主键列 (id) 不是此表 () 中的列”
Controller :
public function listAction(){
$mapper = new Application_Model_UserMapper();
$users = $mapper->fetchAll();
映射器:
public function fetchAll($where=null)
{
$resultSet = $this->getDbTable()->fetchAll($where);
return $resultSet;
数据库表
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");
最佳答案
设置表名的属性是$_name,而不是$name。
https://github.com/zendframework/zf1/blob/master/library/Zend/Db/Table/Abstract.php#L131
关于php - ZF1 主键列不是此表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21061934/