首页 > 解决方案 > When I register any user but remember_token() Always Null In Db During Insertion

问题描述

I am trying to register any user but remember_token() Always Null In Db During Insertion ,

It success but remember_token is missing

How to fix it ?

Database

user table

controller

public function registeraction(Request $request)
{
    $this->validate($request, [
        'name'     => 'Required',
        'email'    => 'Required',
        'password' => 'Required',
    ]);
    $user = User::create(request(['name', 'email', 'password']));
    $name = $request->input('name');
    $email = $request->input('email');
    $password = $request->input('password');

    if (Auth::attempt(['email' => $email, 'password' => $password])) {
        // Authentication passed...
        return redirect()->to('/');
    }
}

html view

<form action="{{route('register.action')}}" method="post">
    {{ csrf_field() }}
    <div class="form-group">
        <label>Name</label>
        <input type="text" name="name" class="form-control" placeholder="Enter Name">
    </div>
    <div class="form-group">
        <label>Email address</label>
        <input type="email" name="email" class="form-control " placeholder="Enter email">
    </div>
    <div class="form-group">
        <label>Password</label>
        <input type="password" name="password" class="form-control" placeholder="Password">
    </div>
    <button type="submit" class="btn btn-primary col-12">Register</button>
</form>

Route

Route::get('Register','CheckController@register');
Route::post('Register/action','CheckController@registeraction')->name('register.action');

标签: laravel

解决方案


remember_token注册新用户的时候就可以null了,因为用户登录时勾选登录页面的“记住我”复选框就会设置。

但如果需要,您可以手动设置:

use Illuminate\Support\Str;

$user->setRememberToken(Str::random(60));
$user->save();

推荐阅读