请问如何优化这段代码
public function resetPassword($email,$verifyCode,$newPassword)
{
$user = User::findByEmail($email)->first();
if ($user) {
$codeData = EmailVerifyLog::findByEmail($email)->get()->last();
if($codeData){
if ($codeData->verifyCode($verifyCode) && $codeData->notExpired()) {
$user->updatePassword($newPassword);
$codeData->updateToExpired();
return true;
}
}
}
return false;
}
调用这个函数的是controller,这里需要用到User和EmailVerifyLog两个对象。
这里加了if判断对象是为了防止执行方法会报错。
但是这样每取一个对象就要判断一次,那就可能会有无数个if,我自己想到的方案有:
1、两个对象同时取同时判断,就少了一个if了,但是如果email不存在,可能会多执行一次查询
2、在控制器获取对象并判断,把对象传进来,这个函数就负责执行函数就行了
请问大家有没有其他方案?
推荐文章: