Возвращать значения из базы данных в исходных типах данных (Kohana ORM)

У меня есть столбец в таблице базы данных active, который должен возвращать, подтвердил ли пользователь почту или нет. Это tinyint (1), и если он установлен на 0, и я проверяю его строго на FALSE, оператор не возвращает TRUE. Я использую ORM для связи с базой данных.

Это установлено в базе данных MySQL:
active tinyint(1) Да 0

if ($user->active === FALSE) // returns FALSE
if ($user->active === '0') // returns TRUE

Я искал в API решение, а в классе базы данных уже был тип данных tinyint.

Должен ли я использовать == вместо === или есть что-то еще, что я мог бы сделать?


person Almir Sarajčić    schedule 22.03.2012    source источник


Ответы (1)


Чтобы сохранить согласованность, приведение данных db к эквивалентам PHP было удалено с версии 3.0, что означает, что вы правы - строгого сравнения нет :)

Что вы можете сделать, если вы действительно хотите, чтобы он перезаписал ORM::_load_values() в сочетании с ORM::list_columns() для приведения к «правильным» типам данных (то есть, если вы остаетесь с драйвером MySQL, потому что переход на PDO все сломает).

person Kemo    schedule 22.03.2012
comment
Хвала :) Хорошо, я буду использовать свободное сравнение. Я считал это плохой практикой, но это проще, чем изменение основных файлов Kohana. - person Almir Sarajčić; 22.03.2012