Учение: hasOne дает ошибки - PullRequest
0 голосов
/ 31 марта 2010

когда я пытаюсь установить связь с пользователем-> группа, я получаю сообщение об ошибке, вот мой код

<?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 Ответ

1 голос
/ 04 мая 2010

Старый вопрос, но без ответа ... У меня были некоторые проблемы с этим, и проблема была в этом

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

Для меня настройки доктрины по умолчанию были 4, и это всегда давало мне ошибки, если я не изменял int для отношения

Так что если в доктрине по умолчанию установлено значение 4, я должен был использовать $ this-> hasColumn ('group_id', 'integer', 4 );

Примечание: я также использую Codeigniter 1.7.2 + Doctrine (но 1.2.1) и похоже, что вы пробовали то же учебное пособие, что и я.

Просто примечание для проверки, если возникли проблемы

...