Laravel错误“类别的‘应用程序\ HTTP \控制器\日期时间’找不到”

问题描述 投票:4回答:3
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它忘记密码生成下面的错误

“类‘应用程序\ HTTP \控制器\日期时间’找不到”

这是在控制器的画面上面的代码不存在我不能修改它RecoverPasswordController Image

在标头,我已经尝试使用

use DateTime;

要么

use App\Http\Controllers\DateTime

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

php laravel post laravel-5.6
3个回答
8
投票

上述类定义,导入类与使用的语句。

use DateTime;

到另一种方法是使用完全合格的命名空间中的代码。随着在全局命名空间PHP类,这一切意味着在类名前一个反斜杠:

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

我更喜欢第一种方法,因为它可以让你一看便知在该文件中使用的每一个类。


2
投票

DateTime的是一个PHP对象,所以你可以使用斜线前声明它:

new \DateTime();

或声明它使用前和后实例:

use DateTime;

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

1
投票

添加一个反斜杠\(定义root namespace

$dateTime = new \DateTime();

你也可以使用类

use DateTime;
use DatePeriod;
use DateInterval;
© www.soinside.com 2019 - 2024. All rights reserved.