В CActiveRecord из Yii способ возврата свойства имеет тип данных SET как целое число - PullRequest
0 голосов
/ 19 мая 2011

Пожалуйста, посмотрите на пример ниже:

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 как выше?

1 Ответ

2 голосов
/ 26 июня 2011

Вы можете перезаписать метод get в вашем классе активных записей или создать новый.

private _mysetInt = array('Sports' => 2, [...]);

function getMyset(){
  $return = 0;
  foreach(explode(',',$this->myset) AS $value) {
    $return += $this->_mysetInt[$value];
  };
  return $return;
}

Также способ получения этих целочисленных значений должен быть приспособлен к вашим потребностям, приведенный выше пример просто псевдо-код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...