您好,登錄后才能下訂單哦!
在 Laravel 中實現用戶注冊和登錄功能非常簡單,因為 Laravel 已經內置了強大的認證系統。下面是一個簡單的步驟來實現用戶注冊和登錄功能:
首先,你需要創建一個數據庫遷移文件來定義用戶表的結構。運行以下命令:
php artisan make:migration create_users_table --create=users
這將在 database/migrations
目錄下生成一個新的遷移文件。打開該文件并定義用戶表結構,例如:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
接下來,運行遷移文件以創建用戶表:
php artisan migrate
運行以下命令創建一個注冊控制器:
php artisan make:controller RegisterController
打開新創建的 RegisterController.php
文件,位于 app/Http/Controllers
目錄下。修改 register
方法以實現注冊邏輯:
use App\Models\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:8|confirmed',
]);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
return redirect()->route('login')->with('success', '注冊成功!');
}
運行以下命令創建一個登錄控制器:
php artisan make:controller LoginController
打開新創建的 LoginController.php
文件,位于 app/Http/Controllers
目錄下。修改 login
方法以實現登錄邏輯:
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
return redirect()->intended('dashboard');
}
return redirect()->back()->withErrors(['email' => '這些憑據無效。']);
}
打開 routes/web.php
文件,添加注冊和登錄路由:
use App\Http\Controllers\Auth\RegisterController;
use App\Http\Controllers\Auth\LoginController;
Route::get('/register', [RegisterController::class, 'showRegistrationForm'])->name('register');
Route::post('/register', [RegisterController::class, 'register']);
Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login');
Route::post('/login', [LoginController::class, 'login']);
在 resources/views
目錄下創建一個名為 auth
的文件夾,并在其中創建 register.blade.php
和 login.blade.php
文件。這兩個文件將分別用于顯示注冊和登錄表單。
register.blade.php
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>注冊</title>
</head>
<body>
<h1>注冊</h1>
<form method="POST" action="{{ route('register') }}">
@csrf
<!-- 表單字段 -->
</form>
</body>
</html>
login.blade.php
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>登錄</title>
</head>
<body>
<h1>登錄</h1>
<form method="POST" action="{{ route('login') }}">
@csrf
<!-- 表單字段 -->
</form>
</body>
</html>
現在,你已經成功實現了用戶注冊和登錄功能。訪問 /register
和 /login
路由,你可以嘗試使用注冊和登錄表單。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。