请看下面的示例:
mysql> SELECT rowid, myset, myset+0
-> FROM set_test;
+-------+-----------------------+---------+
| rowid | myset | myset+0 |
+-------+-----------------------+---------+
| 1 | Sports | 2 |
| 2 | Travel,Sports | 3 |
| 3 | Travel,Dancing | 5 |
| 4 | Travel,Sports | 3 |
| 5 | Travel,Sports,Dancing | 7 |
| 6 | Travel,Dancing | 5 |
| 7 | Sports | 2 |
| 8 | Travel,Dancing | 5 |
+-------+-----------------------+---------+
8 rows in set (0.00 sec)对于Yii,使用CActiveRecord->myset总是返回一个用逗号分隔的字符串。我怎么才能像上面那样作为integer返回呢?
发布于 2011-06-26 07:54:54
您可以覆盖活动记录类中的getter方法,也可以创建一个新方法。
private _mysetInt = array('Sports' => 2, [...]);
function getMyset(){
$return = 0;
foreach(explode(',',$this->myset) AS $value) {
$return += $this->_mysetInt[$value];
};
return $return;
}此外,获取这些整数值的方法也应该根据您的需要进行调整,上面的示例只是伪代码。
https://stackoverflow.com/questions/6054569
复制相似问题