[英]Laravel9 Auth::user() retuns null
我正在学习 Laravel 框架。 我正在尝试将用户重定向到仪表板并在他/她成功注册后立即获取用户凭据。 问题是我可以注册,但是当定向到仪表板时,我得到了一个刚刚注册用户的 null object。
仪表板控制器.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class DashboardController extends Controller
{
public function index()
{
dd(Auth::user());
// or dd(auth()->user());
return view('dashboard');
}
}
我在web.php的路线
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\Auth\RegisterController;
Route::get('/dashboard', [DashboardController::class,'index'])->name('dashboard');
Route::get('/register', [RegisterController::class,'index'])->name('register');
Route::post('/register', [RegisterController::class,'store']);
RegisterController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class RegisterController extends Controller
{
public function index()
{
return view('auth.register');
}
public function store(Request $request)
{
$this->validate($request, [
'name'=> 'required|max:255',
'username' => 'required|max:255',
'email' => 'required|email|max:255',
'password' => 'required|confirmed',
]);
User::create([
'name' => $request->name,
'username' => $request->username,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
return redirect()->route('dashboard');
}
}
用户.php Model
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
protected $fillable = [
'name',
'email',
'password',
'username',
];
protected $hidden = [
'password',
'remember_token',
];
protected $casts = [
'email_verified_at' => 'datetime',
];
}
我正在使用 mysql 数据库。 提前致谢。
尝试使用以下任何Auth
方法。
第一
$user = User::create([
'name' => $request->name,
'username' => $request->username,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
// here we're authenticating newly created user
Auth::login($user);
第二
// newly created user email & password can be passed in an attempt function.
Auth::attempt(['email' => $email, 'password' => $password])
第三
$user = User::create([
'name' => $request->name,
'username' => $request->username,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
// we can use loginUsingId like this
Auth::loginUsingId($user->id);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.