【发布时间】:2018-12-15 21:27:36
【问题描述】:
必须做什么:
我正在尝试使用 Laravel 从头开始创建自己的密码重置。 我有一个 password_resets 表,它有 3 列:email、token、created_at。 我让用户输入要发送密码重置邮件的电子邮件。 用户输入电子邮件后,我的 ResetController 中的“发送”函数会检查电子邮件 ID 是否存在于用户表中。 如果存在,则创建一个令牌,然后将电子邮件和令牌存储在 password_resets 表中。 然后会向该电子邮件地址发送一封恢复邮件,其中包含重置密码的链接。
哪里出错了
当我尝试将数据保存到我的密码重置表时,laravel 抛出此错误:
SQLSTATE[42S22]:未找到列:1054 '字段列表'中的未知列'updated_at'(SQL:插入
password_resets(updated_at,created_at)值(2018-07-07 13:11 :15, 2018-07-07 13:11:15))
但是我的 password_resets 表中没有 updated_at 列
下面是密码重置表的结构:
电子邮件 varchar(191) - 令牌 varchar(191) - created_at 时间戳
我的 ResetController 文件:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use App\PasswordReset;
class ResetController extends Controller
{
public function show()
{
return view('reset.index');
}
public function send()
{
$email = request('resetemail');
if(User::get()->where('email','lol@lol.com')!=null)
{
$token = bin2hex(openssl_random_pseudo_bytes(16));
PasswordReset::create([
'email'=> $email,
'token'=> $token
]);
}
}
}
【问题讨论】: