Laravel 的数据库配置文件位于项目目录的 config/database.php
中。通常情况下,通过修改 .env
文件即可完成数据库配置。
.env
文件找到 .env
文件,并修改以下内容以匹配你的数据库信息:
env复制代码DB_CONNECTION=mysql # 数据库类型,可以是 mysql, sqlite, pgsql, sqlsrv 等 DB_HOST=127.0.0.1 # 数据库主机地址 DB_PORT=3306 # 数据库端口 DB_DATABASE=your_database # 数据库名称 DB_USERNAME=your_username # 数据库用户名 DB_PASSWORD=your_password # 数据库密码
本地开发环境使用 DB_HOST=127.0.0.1
和 DB_PORT=3306
。
远程生产环境确保配置 DB_HOST
为服务器地址,并提供正确的用户名和密码。
SQLite 数据库如果使用 SQLite,则 .env
文件配置如下:
env复制代码DB_CONNECTION=sqlite DB_DATABASE=/absolute/path/to/database.sqlite
修改 .env
文件后,需刷新配置缓存:
bash复制代码php artisan config:cache
可以通过创建控制器逻辑来修改用户密码,例如管理员想要修改某个用户的密码。
在 routes/web.php
添加用于密码修改的路由:
php复制代码Route::post('/user/update-password', [UserController::class, 'updatePassword'])->name('user.updatePassword');
编辑 app/Http/Controllers/UserController.php
:
php复制代码namespace App\Http\Controllers;use Illuminate\Http\Request;use App\Models\User;use Illuminate\Support\Facades\Hash;class UserController extends Controller{ public function updatePassword(Request $request) { $request->validate([ 'user_id' => 'required|exists:users,id', 'password' => 'required|min:6|confirmed', // 确保密码一致 ]); $user = User::find($request->user_id); $user->password = Hash::make($request->password); $user->save(); return back()->with('success', '密码更新成功'); } }
在后台管理界面中,可以添加以下表单以更新密码:
html复制代码<form action="{{ route('user.updatePassword') }}" method="POST"> @csrf <label for="user_id">用户 ID:</label> <input type="number" name="user_id" id="user_id" required> <label for="password">新密码:</label> <input type="password" name="password" id="password" required> <label for="password_confirmation">确认密码:</label> <input type="password" name="password_confirmation" id="password_confirmation" required> <button type="submit">更新密码</button></form>
Laravel 提供了一个强大的命令行工具 Tinker,可以直接在命令行中操作数据库。
打开 Tinker:
bash复制代码php artisan tinker
找到需要修改密码的用户:
php复制代码$user = App\Models\User::where('username', 'admin')->first();
更新用户密码:
php复制代码$user->password = Hash::make('new_password');$user->save();
确认修改成功:
php复制代码App\Models\User::find($user->id)->password;
在某些情况下,可以直接通过数据库工具(如 phpMyAdmin、HeidiSQL 或 MySQL CLI)修改密码字段。
使用 SQL 更新用户密码(假设密码是 new_password
):
sql复制代码UPDATE usersSET password = '$2y$10$H/IXyN4Ew6K...hashed_password_here'WHERE username = 'admin';
为了保证安全,需先通过 Laravel 获取密码的哈希值:
bash复制代码php artisan tinker
然后运行:
php复制代码echo Hash::make('new_password');
使用生成的哈希值替换上述 SQL 中的 hashed_password_here
。
推荐修改方式:
后台表单:适用于用户管理界面,提供方便、安全的修改入口。
Tinker:适合管理员直接操作,无需界面开发。
安全注意事项:
始终使用 Hash::make()
对密码进行加密存储。
确保密码强度,最小长度为 6-8 位,包含大小写字母、数字和符号。
禁止通过纯文本存储密码或明文更新密码。
评论列表 (0条)