3 回答
TA贡献1772条经验 获得超6个赞
看来您的错误来自代码的不同部分。当您尝试访问0
没有此键的数组的索引时。
对于无结果检查原则,在未找到结果时应抛出NoResultException。(或者它为->getSingleResult()
函数执行此操作)您可以简单地捕获此异常并按照您认为合适的方式处理它。
TA贡献1784条经验 获得超2个赞
此方法返回所有匹配结果的数组:
->getResult()
检查是否没有匹配:
$results = $this->getDoctrine()->getRepository(Users::class)->getHash('mail@example.com');
if(empty($results){
echo 'There is an error';
} else {
$hash = $results[0];
}
此方法返回一个结果或null:
->getOneOrNullResult()
检查是否不匹配:
$hash = $this->getDoctrine()->getRepository(Users::class)->getHash('mail@example.com');
if(null===$hash){
echo 'There is an error';
}
注:
由于getOneOrNullResult()您可以将结果直接分配到$hash直持续到比较结果的用户提供密码的哈希您的验证逻辑。如果没有用户$hash会null,以便正常失败的比较,你可以处理,就像输入了错误的密码。牢记安全性,如果您确认该电子邮件没有用户,您就是在帮助黑客,因为现在他们知道不要花时间猜测该电子邮件的密码。
- 3 回答
- 0 关注
- 141 浏览
添加回答
举报