我有标准的Laravel注册系统。 单击电子邮件中的链接后,我需要为用户更新列启用(enable = 1)。
我的迁移:
public static String[] mySplit(String input) {
String[] out = new String[(1 + input.length()) / 2];
for (int i = 0; i < out.length; i++) {
out[i] = input.substring(i * 2, Math.min(2 + (i * 2), input.length()));
}
return out;
}
我该怎么做?默认情况下,用户设置为启用= 0
答案 0 :(得分:2)
好了,您已经建立了users表,enabled
可以正常工作。接下来,您有几种选择,最简单的方法是在注册时触发一封电子邮件,该电子邮件带有沿www.my.site/activate?token=MD5TOKEN的链接,其中md5令牌是他们注册的电子邮件的md5哈希用。然后,当他们点击该路线时将其激活,将其电子邮件哈希并进行比较(如果未登录),请先登录。之后,如果匹配,则将其激活。
另一种方法是创建另一个名为activation_tokens
的表,该表存储一封电子邮件和一个随机生成的令牌,您可以重新生成许多令牌以及一个is_used
列。
编辑以回答评论:
DB::table('users')
->where('email', $email)
->update(['enabled' => 1]);
答案 1 :(得分:0)
尝试更改userActive()函数。
public function userActive(Request $request, User $user) {
echo "XXXXX".$request->user()->email;
$user->update([ 'enable' => 1]);
dd($user); // Redirect
}