【发布时间】:2021-09-16 00:43:43
【问题描述】:
**
这是我的 LoginController.php :
**
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class LoginController extends Controller
{
public function login()
{
return view('auth.login');
}
public function loginCheck(Request $request)
{
$this->validate($request,[
'email' => 'required|email',
'password' => 'required',
]);
if(!auth()->attempt($request->only('email','password'))){
return back()->with('status','Invalid login details');
}
return redirect()->route('dashboard');
}
}
Login.blade.php - 设计
@extends('layouts.app')
@section('content')
<div class="flex justify-center">
<div class="w-4/12 bg-white p-6 rounded-lg">
@if (session('status'))
<div class="bg-red-500 p-4 rounded-lg mb-6 text-white text-center">
{{ session('status') }}
</div>
@endif
<form action="{{ route('login')}}" method="post">
@csrf
<div class="mb-4">
<label for="email" class="sr-only">Email</label>
<input type="text" name="email" id="email" placeholder="email"
class="bg-gray-100 border-2 w-full p-4 rounded-lg @error('email') border-red-500 @enderror"
value="{{ old('email') }}">
@error('email')
<div class="text-red-500 mt-2 text=sm">{{ $message }}</div>
@enderror
</div>
<div class="mb-4">
<label for="password" class="sr-only">Passowrd</label>
<input type="password" name="password" id="password" placeholder="password"
class="bg-gray-100 border-2 w-full p-4 rounded-lg @error('password') border-red-500 @enderror"
value="{{ old('password') }}">
@error('password')
<div class="text-red-500 mt-2 text=sm">{{ $message }}</div>
@enderror
</div>
<div class="mb-4">
<button type="submit" class="bg-blue-500 text-white px-4 py-3 rounded font-medium w-full">Log in
</button>
</div>
</form>
</div>
</div>
@endsection
web.php -路由
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Auth\RegisterController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\DashboardController;
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
Route::get('/posts',[RegisterController::class, 'posts'])->name('posts');
Route::get('/register',[RegisterController::class, 'registration'])->name('register');
Route::post('/register',[RegisterController::class, 'store']);
Route::get('/login', [LoginController::class, 'login'])->name('login');
Route::post('/login', [LoginController::class, 'loginCheck']);
Route::get('/', function () {
return view('dashboard');
});
即使我尝试 dd(); 它显示我是假的,
auth()->用户();在仪表板中显示为空?
但数据正在存储在 MySql Server 中。 但不是 auth()->attemp()-> 登录。为什么?
在这里,我在注册为新用户并直接登录并重定向到仪表板页面时尝试将我的数据存储到 MySql 服务器。
【问题讨论】:
-
实际上不知道这是否重要,但
->only()是否需要数组?
标签: php laravel authentication