基础问题:如何从表映射器内获得“type”列的整数值?
我有一个 PHP Zend Framework 1.12 应用程序运行的网站。MySQL 中有多个表和多个列。在两个表中,我使用 SET 类型。该列名为“type”,值为“set('LOCAL','EXTERNAL')”。请不要将此字段类型与 ENUM 混淆!
到目前为止没有问题,查询表并将 type 列作为 INT 或 STRING 获取也不是问题:
$Sql = $Db->select()->from('tablename', ['type_as_int' => new \Zend_Db_Expr('type+0')]); //returns INT (if both are selected: 3)
$Sql = $Db->select()->from('tablename', ['type']); //returns STRING (if both are selected: LOCAL,EXTERNAL)
但是,在这个应用程序中还有扩展Zend_Db_Table_Abstract的表映射器。 在映射器内部存在“find()”方法。默认情况下,使用抽象来查找记录的主键。 但是...当我使用对象获取记录时,在我的populate方法中发现以下响应:
array([type] => LOCAL,EXTERNAL)
用手动查询(并自己定义列)是一种选择($this->select()->from...),但有没有更优雅的方法呢?
(我知道我正在使用较旧版本的ZF,但此时升级需要花费太多时间。)