Doctrine:hasOne给出了错误

时间:2010-03-31 02:44:13

标签: php codeigniter doctrine

当我尝试与user->组建立关系时,我在此处收到错误是我的代码

<?php
class User extends Doctrine_Record {

    public function setTableDefinition() {
        $this->hasColumn('username', 'string', 255, array('unique' => 'true'));
        $this->hasColumn('password', 'string', 255);
        $this->hasColumn('email', 'string', 255, array('unique' => 'true'));
        $this->hasColumn('group_id', 'integer', 20);
    }

    public function setUp() {
        $this->setTableName('users');
        $this->actAs('Timestampable');
        $this->hasMutator('password', '_encrypt_password');

        $this->hasOne('Group', array(
            'local' => 'group_id',
            'foreign' => 'id'
            ));
    }

    protected function _encrypt_password($value) {
        $salt = '#*seCrEt!@-*%';
        $this->_set('password', md5($salt . $value));
    }
}
?>

有人可以解释为什么我会收到错误吗?

这是我的群组代码:

<?php
class Group extends Doctrine_Record {

    public function setTableDefinition() {
        $this->hasColumn('name', 'string', 255);
    }

    public function setUp() {
        $this->setTableName('groups');
    }

}
?>

我正在运行Code Igniter 1.7.2和Doctrine 1.2.2

1 个答案:

答案 0 :(得分:1)

老问题,但没有回答......我自己遇到了一些问题,问题是这个

$ this-&gt; hasColumn('group_id','integer', 20 );

对我来说,默认的学说设置是4,它总是给我错误,除非我改变关系的int

因此,如果我必须使用的学说中的默认值为4 $ this-&gt; hasColumn('group_id','integer', 4 );

注意:我也使用Codeigniter 1.7.2 + Doctrine(但是1.2.1),看起来你正在尝试和我一样的教程。

如果遇到问题,请注意结帐