用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4450|回复: 5
收起左侧

[数据库] Doctrine使用toArray()后ID为NULL??

[复制链接]
发表于 2010-7-23 11:04:31 | 显示全部楼层 |阅读模式
本帖最后由 kkk 于 2010-7-23 14:08 编辑
PHP复制代码
class Users extends Abstract_base {
 
public function setTableDefinition() {
 
$this->hasColumn ( "id", 'integer', 11 );
 
$this->hasColumn ( "name", 'varchar', 50 );
 
}
 
}
 
 
复制代码


控制器中
PHP复制代码
 
 
$user=Doctrine::getTable('Users');
 
$user=$user->findAll();
 
 
foreach ($useras $obj) {
 
var_dump($obj->toArray());
 
}
 
 
 
复制代码



打印出来的
PHP复制代码
 
array(3) {  ["id"] => NULL  ["name"] => string(5) "admin"}array(3) {  ["id"] => NULL  ["name"] => string(6) "yahoo!"}
 
复制代码


ID莫名其妙的成为NULL了......
如果是返回对象,那么ID还是能正确取出来的,百思不得其解,在线等求救
 楼主| 发表于 2010-7-23 11:09:16 | 显示全部楼层
终于找到问题了,在于Abstract_base 类,我添加Abstract_base  是为了想添加一些自定义功能,目前Abstract_base 如下:
PHP复制代码
 
abstract class Abstract_base extends Doctrine_Record {
 
        public function __construct() {
                parent::__construct();
        }
}
 
复制代码


问题就出在
PHP复制代码
 
        public function __construct() {
                parent::__construct();
        }
 
复制代码


把这段代码删掉那么toArray后还是可以正常显示的。
问题自愈了,但还是不明白为什么加了
        public function __construct() {
                parent::__construct();
        }
就不行......
发表于 2010-12-6 17:25:12 | 显示全部楼层
问题解决了 知道How了,那知道Why了吗
 楼主| 发表于 2010-12-15 19:30:49 | 显示全部楼层
回复 3# aramisliu


   诚心请指教。
发表于 2010-12-28 14:31:52 | 显示全部楼层
本帖最后由 feiying0193 于 2010-12-28 14:32 编辑

好像应该是
PHP复制代码
parent::Doctrine_Record()
复制代码
吧?
发表于 2011-3-15 14:30:38 | 显示全部楼层

abstract class Doctrine_Record extends Doctrine_Record_Abstract implements Countable, IteratorAggregate, Serializable{}
抽象类的构造函数   应该是算抽象方法吧  抽象方法不能被重写  不知道这样解释对不对

本版积分规则