注册用户时未生成activation_token,怀疑是creating方法失效
问题描述:
在前台注册用户的时候,报错说 confirm.blade模板并没有传递token。
排查过程:
1.在usercontroller文件里的store方法里打印 $user,发现没有activation_token
2.进数据库查看,发现注册用户的信息已经插入到了数据表,但是activation_token的值是空的。
3.仔细比对/app/Models/User.php ,与老师的一模一样
4.仔细对比这章所用到的所有文件,与老师的一模一样
5.清除缓存也试过了,清除数据库,重新填充数据库也是过了
还是不行。。
user.php
public static function boot()
{
parent::boot();
static::creating(function ($user) {
$user->activation_token = Str::random(10);
});
}
usersController.php
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|max:50',
'email' => 'required|email|unique:users|max:255',
'password' => 'required|confirmed|min:6'
]);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password),
]);
$this->sendEmailConfirmationTo($user);
session()->flash('success', '验证邮件已发送到你的注册邮箱上,请注意查收。');
return redirect('/');
}
问题:
1.我怎么判断boot方法里的creating代码有没有执行?我尝试在这个代码exit,但是没有中止程序
2.我接下来应该检查哪里?迷茫。。。
3.我暂时将confirm.blade里面的代码清空,先略过这一章,往下面走吧
推荐文章: