DoctrineORMModule(https://github.com/doctrine/DoctrineORMModule、Composer経由でインストール)とZF2を使用してWebアプリケーションを開発しています。
私の問題は、教義から例外を受け取らず、「内部500」エラーだけを受け取ることです。でもで
ini_set('display_errors', 1);
error_reporting(E_ALL);
エラーは表示されません。「Internal500」メッセージだけが表示されます(php.iniでもこれらの設定を適用しました)。「php_error_log」にもエントリはありません。
行をtry-catch-blockで囲むと、例外はキャッチされません。これは、flush()およびpersist()の呼び出し中に発生します。その他のPHP-エラーが表示されます。
例:
ini_set('display_errors', 1);
error_reporting(E_ALL);
$rel = new \MyApp\Entity\UserRelationship();
$rel->relatingUser = $user;
$rel->relatedUser = $friend;
try {
$em->persist($rel);
} catch ( Exception $e ) {
var_dump($e);
}
これにより「内部500」エラーが発生しますが、教義はエラーをスローするはずです。
私は何時間もグーグルで検索しましたが、これがデフォルトの動作であるかどうか、または例外をログに記録/スローするようにdoctrineORMModuleを構成する必要があるかどうかはわかりません。例外を取得する方法について誰かが私にヒントを与えることができれば、私は非常に感謝します。これは私を非常に遅くするからです。
編集:persist()とflush()を使用できます。データベースクエリが実行され、すべて問題ありません。エンティティに間違いを犯し、それらを永続化またはフラッシュしたい場合でも、例外は発生しません。persist()の前に何かをエコーした場合、「Internal 500」は表示されませんが、データベースは更新されません。
Edit2:上記の例のエラーは、間違った「mappedBy」エントリおよび/または間違った名前のセッターでした。まだ例外はありません:)