Laravel 错误“找不到类'App\http\Controllers\DateTime'”

2022-08-30 16:00:51
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'),
        )
    );

我正在尝试实现忘记密码时,电子邮件表单被提交给foreverPasswordController,它会生成以下错误

“找不到'应用程序\Http\控制器\日期时间'类”

这是控制器的图片上面的代码是没有,我不能修改它恢复密码控制器图像

在标题我已尝试使用

use DateTime;

use App\Http\Controllers\DateTime

但仍然产生相同的错误,请帮助修复它。提前致谢


答案 1

在类定义上方,导入带有 use 语句的类。

use DateTime;

另一种方法是在代码中使用完全限定的命名空间。对于全局命名空间中的 PHP 类,这意味着类名前只有一个反斜杠:

$expires = new \DateTime('NOW');

我更喜欢第一种方法,因为它允许您一目了然地看到该文件中使用的每个类。


答案 2

DateTime 是一个 PHP 对象,因此您可以在以下位置使用斜杠声明它:

new \DateTime();

或者在使用之前声明它,并在以后实例化:

use DateTime;

class Etc
{
    public function test()
    {
        $datetime = new DateTime();
    }
}

推荐