知道为什么我的Doctrine1.2模型会返回整数定义字段的字符串值吗?
基本模式的定义如下:
abstract class Kwis_Model_Base_User extends Doctrine_Record
{
public function setTableDefinition()
{
$this->setTableName('user');
$this->hasColumn('id', 'integer', 4, array(
'unsigned' => true,
'primary' => true,
'autoincrement' => true,
));
// more fields
// ...
}表模型被定义为:
class Kwis_Model_UserTable extends Kwis_Model_BaseTable
{
/**
* Returns an instance of this class.
*
* @return object Kwis_Model_UserTable
*/
public static function getInstance()
{
$table = Doctrine_Core::getTable('Kwis_Model_User');
return $table;
}
// other methods
// ...
}示例控制器代码:
class TestController extends Zend_Controller_Action
{
public function indexAction()
{
$userTable = Kwis_Model_UserTable::getInstance();
$user = $userTable->find(1);
echo "<pre>" . var_dump($user->id) . "</pre>"; die();
}
}产出:
string '1' (length=1)任何想法,都非常感谢。;-)
发布于 2011-02-10 09:46:27
另外,作为下面的答案,字符串的左和右位操作将对ASCII值进行操作。
您可以使用水合侦听器将int转换为int。要么创建一个新的水合监听器并将其添加到记录(1)中,要么使用记录对象(2)中现有的钩子模板。
1:http://www.doctrine-project.org/projects/orm/1.2/docs/manual/event-listeners/pl#record-listeners
2:
abstract class My_Rec extends Doctrine_Record {
function postHydrate($event) {
$data = $event->data;
$data['status'] = (int) $data['status'];
$event->data = $data;
}
}发布于 2010-12-21 05:04:04
这难道不是PHP中使用无类型变量的好处吗?这导致了什么问题?如果你愿意的话,你仍然可以对它做数学运算。不过,我怀疑您不需要对用户ID执行除字符串比较之外的任何操作。
https://stackoverflow.com/questions/4484385
复制相似问题