質問

こちらのコードをご覧ください: http://pastie.org/1092106

ブログのメソッドCreatePostを呼び出すと、例外を取得し続けます。次のように読み取ります。

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

ああ、そして...私は各ページのロードで$ _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)
)

うまくいけば、誰かが助けることができます!

役に立ちましたか?

解決

したがって、さらに検査すると、ユーザークラスの$ IDフィールドに次の注釈を追加すると、次のように見えます。

* @Id

おそらく、この時点で、誰かが私の財産が関係に参加する前になぜユニークな識別子でなければならないのかを理解するのを手伝うことができますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top