我正在寻找一种方法来测试连接是否与doctrine 2一起工作.
因为在我的应用程序中,用户可以自己更改信息连接.
我想检查用户是否输入了正确的登录名和正确的密码.
我怎样才能做到这一点 ?
我试图将此代码放入try / catch块:
try{ $entityManager = $this->getEntityManager() ; $repository = $entityManager->getRepository('Authentification\Entity\User'); $userToIdentify = $repository->findOneBy(array('login' => $this->_username,'password' => $this->_password)); }catch(Exception $e){ $code = Result::FAILURE ; $identity = "unknow" ; $messages = array( "message" => "Mauvaise combinaison de login/password",) ; }
问题是,即使信息连接是正确的,我也无法捕获异常.
否则我有这个错误:
<b>Fatal error</b>: Uncaught exception 'Zend\View\Exception\RuntimeException' with message 'Zend\View\Renderer\PHPRenderer::render: Unable to render template "layout/layout"; resolver could not resolve to a file' in C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\View\Renderer\PHPRenderer.PHP:451 Stack trace: #0 C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\View\View.PHP(203): Zend\View\Renderer\PHPRenderer->render(Object(Zend\View\Model\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 [internal function]: Zend\Mvc\View\Http\DefaultRenderingStrategy->render(Object(Zend\Mvc\MvcEvent))#3 C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\EventManager\EventManager.PHP(469): call_user_func(Array,Object(Zend\Mvc\MvcEvent))#4 C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\EventManager\EventMa in <b>C:\xampp\htdocs\poemsV3\vendor\zendframework\zendframework\library\Zend\View\Renderer\PHPRenderer.PHP</b> on line <b>451</b><br />
你对我如何测试连接是否有效有任何想法吗?
谢谢.
不要直接使用EntityManager.您可以改为使用以下内容来检查连接参数:
原文链接:https://www.f2er.com/php/134778.htmltry { $entityManager->getConnection()->connect(); } catch (\Exception $e) { // Failed to connect }
遗憾的是,这是检查是否出现问题的唯一真正方法,因为异常类型会根据您使用的驱动程序而改变.
对于另一个例外(与视图相关的例外),您只需调整视图脚本路径即可.我建议你保持skeleton application module启用,以便默认布局始终存在:你可以override it at any time.