3 回答

TA貢獻(xiàn)1772條經(jīng)驗 獲得超6個贊
看來您的錯誤來自代碼的不同部分。當(dāng)您嘗試訪問0
沒有此鍵的數(shù)組的索引時。
對于無結(jié)果檢查原則,在未找到結(jié)果時應(yīng)拋出NoResultException。(或者它為->getSingleResult()
函數(shù)執(zhí)行此操作)您可以簡單地捕獲此異常并按照您認(rèn)為合適的方式處理它。

TA貢獻(xiàn)1784條經(jīng)驗 獲得超2個贊
此方法返回所有匹配結(jié)果的數(shù)組:
->getResult()
檢查是否沒有匹配:
$results = $this->getDoctrine()->getRepository(Users::class)->getHash('mail@example.com');
if(empty($results){
echo 'There is an error';
} else {
$hash = $results[0];
}
此方法返回一個結(jié)果或null:
->getOneOrNullResult()
檢查是否不匹配:
$hash = $this->getDoctrine()->getRepository(Users::class)->getHash('mail@example.com');
if(null===$hash){
echo 'There is an error';
}
注:
由于getOneOrNullResult()您可以將結(jié)果直接分配到$hash直持續(xù)到比較結(jié)果的用戶提供密碼的哈希您的驗證邏輯。如果沒有用戶$hash會null,以便正常失敗的比較,你可以處理,就像輸入了錯誤的密碼。牢記安全性,如果您確認(rèn)該電子郵件沒有用戶,您就是在幫助黑客,因為現(xiàn)在他們知道不要花時間猜測該電子郵件的密碼。

TA貢獻(xiàn)1780條經(jīng)驗 獲得超1個贊
可能是你應(yīng)該使用
->getOneOrNullResult();
并在控制器中檢查 if 語句?
if(null === $result){}
- 3 回答
- 0 關(guān)注
- 179 瀏覽
添加回答
舉報