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

时间:2018-08-29 09:35:29

标签: php laravel post laravel-5.6

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

但仍然会产生相同的错误 请帮助修复它。 预先感谢

4 个答案:

答案 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;