Doctrine orm 如何测试连接在原则2中的工作情况?

Doctrine orm 如何测试连接在原则2中的工作情况?,doctrine-orm,zend-framework2,Doctrine Orm,Zend Framework2,我正在寻找一种方法来测试一个连接是否与原则2起作用 在我的应用程序中,用户可以自己更改信息连接,因此我想检查用户是否输入了正确的登录名和密码 我该怎么做 我试图将此代码放入try/catch块: 试试看{ $entityManager=$this->getEntityManager(); $repository=$entityManager->getRepository('authentication\Entity\User'); $usertoIdentity=$repository->fin

我正在寻找一种方法来测试一个连接是否与原则2起作用

在我的应用程序中,用户可以自己更改信息连接,因此我想检查用户是否输入了正确的登录名和密码

我该怎么做

我试图将此代码放入try/catch块:

试试看{
$entityManager=$this->getEntityManager();
$repository=$entityManager->getRepository('authentication\Entity\User');
$usertoIdentity=$repository->findOneBy(数组('login'=>$this->\u用户名,'password'=>$this->\u密码));
}捕获(例外$e){
$code=结果::失败;
$identity=“unknow”;
$messages=数组(
“消息”=>“错误的登录/密码组合”,
) ;
}
问题是,即使信息连接正确,我也无法捕获异常

否则,我将得到以下错误:

致命错误:未捕获异常“Zend\View\exception\RuntimeException”
带有消息“Zend\View\Renderer\PhpRenderer::render:无法呈现模板”
“布局/布局”;解析程序无法解析为C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php:451堆栈跟踪:#0 C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\View\View.php(203):Zend\View\Renderer\PhpRenderer\PhpRenderer render呈现程序(对象(Zend\View\Model\View\ViewModel))#1 C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\Mvc\View\Http\DefaultRenderingStrategy.php(128):Zend\View\View render(Object(Zend\View\Model\ViewModel))#2[内部函数]:Zend\Mvc\View\Http\DefaultRenderingStrategy render(Object(Zend\Mvc\MvcEvent))#3 C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.php(469):调用用户函数(数组,对象(Zend\Mvc\MvcEvent))#第451行的C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\EventManager\EventMa中的C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php
你知道我如何测试连接是否正常吗


谢谢。

不要直接使用
EntityManager
。您可以改为使用以下选项来检查连接参数:

试试看{
$entityManager->getConnection()->connect();
}捕获(\异常$e){
//连接失败
}
不幸的是,这是检查是否出了问题的唯一真正方法,因为异常类型根据您使用的驱动程序而变化

对于另一个异常(与视图相关的异常),您只需调整视图脚本路径。我建议您保持启用状态,以便默认布局始终存在:您可以。

您可以使用

$cnx=$this->getDoctrine()->getConnection();
$cnx->isConnected()?
“已连接”:
“未连接”;

我可以问一下-为什么对异常使用反斜杠?我从来没有见过这种情况。这是确保命名空间完整性所必需的吗?@SquareCat\表示根命名空间。如果您在文件中设置了名称空间指令,以确保使用了PHP异常类,而不是名称空间中的异常类,则需要执行此操作。注意:由于DBAL 2.5,
Connection#ping()
可用。我正试图使用此try-catch块,而使其通过的唯一方法是删除->connect()。我已将条令2.4.8与Symfony/yaml 2一起安装。