我使用 DoctrineORMModule(https://github.com/doctrine/DoctrineORMModule,通过 Composer 安装)和 ZF2 来开发 Web 应用程序。
我的问题是,我没有从教义中得到例外,只有“内部 500”错误。即使
ini_set('display_errors', 1);
error_reporting(E_ALL);
我没有看到错误,只是“内部 500”消息(我也在 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”错误,但我猜教义应该会引发错误。
我用谷歌搜索了几个小时,但我不知道这是默认行为,还是您必须配置教义ORMModule 来记录/抛出异常。如果有人能给我一个关于如何获得异常的提示,我将非常感激,因为这让我非常慢下来。
编辑:我可以使用persist() 和flush(),执行数据库查询,一切正常。只是如果我在实体中犯了错误并想要坚持或刷新它们,我不会得到异常。如果我在persist()之前回显某些内容,则未显示“内部500”,但数据库未更新或任何内容。
Edit2:上面示例中的错误是错误的“mappedBy”-entry 和/或错误的命名设置器。仍然没有例外:)