3

Place と Placetype エンティティがあります。My Place エンティティの id 属性は AUTO に設定されています。

/**
 * @var integer $id
 *
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

しかし、オブジェクトを永続化したい場合、次のエラーが発生しました:

タイプ blabla\Entity\Place のエンティティに割り当てられた ID がありません。このエンティティの識別子生成戦略では、EntityManager#persist() が呼び出される前に ID フィールドに入力する必要があります。代わりに自動生成された識別子が必要な場合は、それに応じてメタデータ マッピングを調整する必要があります。

これを修正する方法を知っていますか?

ご協力いただきありがとうございます

4

4 に答える 4

5

これを置き換えることで機能します:

/**
 * @var integer $uid
 *
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

これに:

/**
 * @var integer $uid
 *
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\Id
 */
private $id;
于 2012-11-15T15:25:35.637 に答える
1

これを試して:

/**
 * @var integer $uid
 *
 * @ORM\Column(name="id", type="integer", nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $id;

戦略を「IDENTITY」に設定

于 2012-06-22T15:30:00.310 に答える
1

このエラーは、外部キーの構成が間違っている場合に発生する可能性があります。その場合、IDENTITY 戦略を使用する必要があります。例:

1つのビールには1人の酒飲みがいます

ビール.id_drinker = 酒飲み.id

しかし、ここで :

ALTER TABLE `drinker`
ADD CONSTRAINT `drinker_ibfk_1` FOREIGN KEY (`id`) REFERENCES `beer` (`id_drinker`);

どれが悪いか > 酒飲み.id = ビール.id_drinker

良い:

ALTER TABLE `beer`
ADD CONSTRAINT `beer_ibfk_1` FOREIGN KEY (`id_drinker`) REFERENCES `drinker` (`id`);
于 2014-09-24T00:37:11.147 に答える