Fre*_*zer 8 doctrine-orm zend-framework2
我正在寻找一种方法来测试连接是否与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",
) ;
}
Run Code Online (Sandbox Code Playgroud)
问题是,即使信息连接是正确的,我也无法捕获异常.
否则我有这个错误:
<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 />
Run Code Online (Sandbox Code Playgroud)
你对我如何测试连接是否有效有任何想法吗?
谢谢.
Ocr*_*ius 17
不要EntityManager直接使用.您可以改为使用以下命令来检查连接参数:
try {
$entityManager->getConnection()->connect();
} catch (\Exception $e) {
// failed to connect
}
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这是检查是否出现问题的唯一真实方法,因为异常类型会根据您使用的驱动程序而改变.
对于另一个例外(与视图相关的例外),您只需调整视图脚本路径即可.我建议您启用框架应用程序模块,以便默认布局始终存在:您可以随时覆盖它.
小智 5
您可以使用。
$cnx = $this->getDoctrine()->getConnection();
$cnx->isConnected() ?
'Connected' :
'not connected';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10718 次 |
| 最近记录: |