用thinkPHP6写一个注册登录案例
时间: 2023-06-08 09:05:51 浏览: 473
好的,我了解了您的需求。下面是一个用ThinkPHP6框架实现注册登录的案例示例:
1. 创建数据库
首先,需要在MySQL中创建一个名为 "demo" 的数据库,并在该数据库中创建一个名为 "users" 的表,用于存储用户注册信息。
CREATE DATABASE demo;
CREATE TABLE `users` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT '',
`password` varchar(255) DEFAULT '',
`email` varchar(255) DEFAULT '',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2. 创建控制器和模型
在ThinkPHP6框架中,使用命令行工具可以快速生成控制器和模型。在项目根目录下打开命令行窗口,执行以下命令:
php think make:controller User
php think make:model User
这样,就创建了名为 "User" 的控制器和模型。在控制器中,可以编写用户注册和登录的相关代码。
3. 用户注册
在User控制器中,添加注册方法如下:
public function register()
{
$data = $this->request->param();
$validate = new \app\validate\User();
if (!$validate->scene('register')->check($data)) {
return json(['code' => 0, 'msg' => $validate->getError()]);
}
$user = new \app\model\User();
$user->username = $data['username'];
$user->password = md5($data['password']);
$user->email = $data['email'];
$user->save();
return json(['code' => 1, 'msg' => '注册成功']);
}
在上面的代码中,首先从请求中获取用户的注册信息,然后使用验证器验证用户输入的数据格式是否正确。如果验证不通过,则返回相应的错误信息;如果验证通过,则将用户信息保存到数据库中,并返回注册成功的提示信息。
4. 用户登录
在User控制器中,添加登录方法如下:
public function login()
{
$data = $this->request->param();
$validate = new \app\validate\User();
if (!$validate->scene('login')->check($data)) {
return json(['code' => 0, 'msg' => $validate->getError()]);
}
$user = \app\model\User::where([
'username' => $data['username'],
'password' => md5($data['password'])
])->find();
if ($user) {
session('user', $user);
return json(['code' => 1, 'msg' => '登录成功']);
} else {
return json(['code' => 0, 'msg' => '用户名或密码错误']);
}
}
在上面的代码中,首先从请求中获取用户的登录信息,然后使用验证器验证用户输入的数据格式是否正确。如果验证不通过,则返回相应的错误信息;如果验证通过,则从数据库中查找与用户输入的用户名和密码匹配的记录,如果找到相应的用户,就将用户信息保存到session中,并返回登录成功的提示信息;否则返回用户名或密码错误的提示信息。
5. 编写路由
在routes目录下的api.php文件中,添加如下路由:
Route::post('register', 'user/register');
Route::post('login', 'user/login');
这样就完成了用ThinkPHP6框架实现注册登录的案例。
阅读全文