0
た後、私はこのようにサイレックスで教義を登録しています:サイレックスDoctrineは「EntityManagerが閉鎖され、」教義例外
// Doctrine
$this->register(new DoctrineServiceProvider(), array(
'db.options' => $this['config']['doctrine']['db.options']
));
$this->register(new DoctrineOrmServiceProvider());
$this['orm.em.options'] = $this['config']['doctrine']['orm.em.options'];
私は、重複した行を挿入した場合、私はこの例外を取得:
整合性制約違反:1062重複エントリ
try/catchを使用してこの例外をキャッチしました。後でDoctrineを再度使用しようとすると、この例外は常に表示されます。
EntityManagerが閉じられています。
私は、これらのステップ(The EntityManager is closed)以下のEntityManagerをリロードしてみた場合:
if (!$app['orm.em']->isOpen()) {
$app['orm.em'] = $app['orm.em']->create(
$app['orm.em']->getConnection(), $app['orm.em']->getConfiguration(), $app['orm.em']->getEventManager()
);
}
しかし、今、この例外が示されています:
は、フリーズしたサービス "orm.em"
をオーバーライドすることはできません
Doctrine例外がhaの後にSilexでDoctrineプロバイダを使用するにはどうすればよいですかぼんやりした?
ありがとうございました。
できません。マネージャーは、例外の後に設計によって閉じられます。この種の例外の後で実際にデータベースにアクセスする必要がある場合は、2つのエンティティ・マネージャを作成し、1つを例外の後にクリーン・アップに使用します。それ以外の場合は、リダイレクトして移動します。 – Cerad
[EntityManagerがクローズされている]の可能な複製(http://stackoverflow.com/questions/14258591/the-entitymanager-isclosed) – olibiaz
レコードが存在するかどうかをチェックして、存在しない場合にのみデータを挿入します記録。 – sonam