基本问题如何从表映射器中获取"类型"列作为整数值?
我有一个运行网站的PHP Zend Framework 1.12应用程序.MySQL内部是多个具有多列的表.在两个表中我使用SET类型.该列名为"type"和"set('LOCAL','EXTERNAL')'.请不要将此字段类型与ENUM混淆!
到目前为止没有问题,查询表并将类型列提取为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)
Run Code Online (Sandbox Code Playgroud)
但是,在此应用程序中还有表映射程序,可以扩展Zend_Db_Table_Abstract.映射器内部存在'find()'方法.默认内置于摘要中以按主键查找记录.但是..当我使用该对象获取记录时,我在populate方法中找到以下响应:
array([type] => LOCAL,EXTERNAL)
Run Code Online (Sandbox Code Playgroud)
手动查询(并自己定义列)将是一个选项($ this-> select() - > from ...),但是不是更优雅的方式吗?
(我知道我使用的是旧版本的ZF,但此时升级会花费太多时间.)