2010-08-14 3 views
2

Пожалуйста, смотрите код здесь: http://pastie.org/1092106Получение неопределенного исключения ID при использовании Доктрины 2,0

Когда я вызываю метод createPost на блог, я получаю исключение, оно гласит:

At line 474 in lib/Doctrine/ORM/Persisters/BasicEntityPersister.php - Undefined index: id 

OH, а также ... Я регенерирую $ _SESSION ['User'] для каждой загрузки страницы, поэтому объект не отделен от диспетчера сущностей или чего-либо подобного.

Вот схемы Doctrine2 является предусматривающие:

Array (
    [0] => CREATE TABLE Note (id INT AUTO_INCREMENT NOT NULL, user_id INT DEFAULT NULL, text LONGTEXT NOT NULL, created DATETIME NOT NULL, PRIMARY KEY(id)) ENGINE = InnoDB 
    [1] => CREATE TABLE BlogPost (note_id INT NOT NULL, blog_name VARCHAR(255) NOT NULL, PRIMARY KEY(note_id, blog_name)) ENGINE = InnoDB 
    [2] => CREATE TABLE User (email VARCHAR(95) NOT NULL, id INT NOT NULL, password VARCHAR(32) NOT NULL, alias VARCHAR(15) DEFAULT NULL, firstName VARCHAR(20) DEFAULT NULL, lastName VARCHAR(20) DEFAULT NULL, enabled TINYINT(1) NOT NULL, created DATETIME NOT NULL, UNIQUE INDEX User_id_uniq (id), PRIMARY KEY(email)) ENGINE = InnoDB 
    [3] => ALTER TABLE Note ADD FOREIGN KEY (user_id) REFERENCES User(id) 
    [4] => ALTER TABLE BlogPost ADD FOREIGN KEY (note_id) REFERENCES Note(id) 
    [5] => ALTER TABLE BlogPost ADD FOREIGN KEY (blog_name) REFERENCES Blog(name) 
) 

Надеюсь кто-то может помочь!

+0

Вы используете аннотации? – 2010-08-14 18:17:14

+0

Да. Если вы проверите код пасты, все это будет сделано с помощью аннотаций. –

ответ

0

Таким образом, при дальнейшем рассмотрении, оказывается, как бы добавляя следующую аннотацию к полю идентификатора $ на моем классе User получил это работает:

* @Id 

Возможно, в этот момент кто-то может помочь мне понять, почему моя собственность должен быть уникальным идентификатором, прежде чем он сможет участвовать в отношениях?

+0

В доктрине 2 ассоциация всегда устанавливается между внешним ключом и столбцом @Id сущностей. Если у вас нет столбца @Id, другие объекты не могут быть связаны. –

Смежные вопросы