【发布时间】:2019-09-12 10:36:30
【问题描述】:
我想知道用户是否登录。
public function findByExampleField($data) {
return $this->createQueryBuilder('u')
->select('u.email, u.password')
->where('u.email = :email')
->andWhere('u.password = :password')
->setParameter('email', $data['email'])
->setParameter('password', $data['password']) // <-- the problem
->setMaxResults(10)
->getQuery()
->getResult()
;
}
由于密码是散列的,我需要先验证它。在这种情况下,我需要使用password_verify($data['password'], $hash)。我的问题是第二个参数。如何声明变量$hash?
【问题讨论】:
-
如下所述,去掉
->andWhere('u.password = :password')和->setParameter('password', $data['password']),然后在PHP中运行比较逻辑。->setMaxResults(10)也很有趣! -
只是好奇,你为什么用密码搜索?在您的数据库中,电子邮件不是唯一的吗?通过其他字段而不是密码可能更容易搜索?
标签: php symfony authentication symfony4