public function recover(Request $request){
$email = $request->input('email');
// Create tokens
$selector = bin2hex(random_bytes(8));
$token = random_bytes(32);
$url = sprintf('%s', route('recover.reset',['selector'=>$selector, 'validator'=>bin2hex($token)]));
// Token expiration
$expires = new DateTime('NOW');
$expires->add(new DateInterval('PT01H')); // 1 hour
// Delete any existing tokens for this user
DB::delete('delete * from password_reset where email =?', $email);
// Insert reset token into database
$insert = $this->db->insert('password_reset',
array(
'email' => $email,
'selector' => $selector,
'token' => hash('sha256', $token),
'expires' => $expires->format('U'),
)
);
我正在尝试实施忘记密码 电子邮件表单提交到forgotPasswordController时 它会产生以下错误
“未找到类'App \ Http \ Controllers \ DateTime'”
这是控制器的图片,上面的代码不存在,我无法修改它 RecoverPasswordController Image
在标题处,我尝试使用
use DateTime;
或
use App\Http\Controllers\DateTime
但仍然会产生相同的错误 请帮助修复它。 预先感谢
答案 0 :(得分:4)
在类定义上方,使用use语句导入类。
use DateTime;
替代方法是在代码中使用完全限定的名称空间。对于全局命名空间中的PHP类,所有这些都意味着在类名之前加一个反斜杠:
$expires = new \DateTime('NOW');
我更喜欢第一种方法,因为它使您可以一目了然地查看该文件中使用的每个类。
答案 1 :(得分:1)
DateTime是一个PHP对象,因此您可以在前面使用斜杠对其进行声明:
new \DateTime();
或者在使用前声明它,然后再实例化:
use DateTime;
class Etc
{
public function test()
{
$datetime = new DateTime();
}
}
答案 2 :(得分:1)
添加反斜杠\
(以定义root namespace
)
$dateTime = new \DateTime();
您还可以使用类
use DateTime;
use DatePeriod;
use DateInterval;
答案 3 :(得分:0)
通过使用下面的类对我有用。
use DateTime;
use DatePeriod;
use DateIntercal;