用户注册准备工作
首先安装laravel项目(项目名称可以自定义这里使用‘talking’):
laravel new talking
安装完成之后执行:
cd talking
创建一个测试用的域名链接:
valet link talking
创建数据库:数据库名称(talking)
打开项目进行配置:选择env修改
APP_NAME=talking
DB_DATABASE=talking
DB_USERNAME=用户名
DB_PASSWORD=密码
打开控制台生成相关的表格:
php artisan migrate
一般情况下数据库会生成users,password_resets,migrations
三张表格
接下来我们打开控制台创建一个:RegisterController
php artisan make:controller RegisterController
我们还要创建一个:RegisterUserRequest
使用这个request对用户提交的数据做一个最基本的审核
php artisan make:request RegisterUserRequest
创建完成之后我们打开:Http/Requests/RegisterUserRequest
修改authorize注册权限,基本上所有的用户都有权限来进行注册
class RegisterUserRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required|min:6',//名字最低字段长度6
'email'=>'required|email|unique:users',//email格式,在users表里不可重复
'password'=>'required|min:6'//密码最低字段长度6
];
}
}
接下来我们打开:Http/Controllers/RegisterController
<?php
namespace App\Http\Controllers;
use App\Http\Requests\RegisterUserRequest;
use Illuminate\Http\Request;
class RegisterController extends Controller
{
public function register(RegisterUserRequest $request)
{
return response()->json([
'data'=>'ok'
]);
}
}
打开:routes/api.php
配置注册路由
Route::post('/register', 'RegisterController@register');
接下来我们使用postman工具创建一个管理API的工程,如果没有安装postman的先安装一下
-
首先创建一个
New Collection
命名为:talking
-
右键talking点击
Add Folder
创建子目录:Auth
-
在Auth目录下点击三个小圆点,点击
Add Request
创建名称:Register
-
打开Register进行测试请求方式改为
POST
-
请求地址:
http://talking/api/register
-
接下来点击地址下面的:
Header
返回数据
接着点击地址下面的Params
返回数据
打开:Http/Controllers/RegisterController
将用户加入数据库做判断如果用户已经存在将不能添加
<?php
namespace App\Http\Controllers;
use App\Http\Requests\RegisterUserRequest;
use Illuminate\Http\Request;
use App\User;
class RegisterController extends Controller
{
public function register(RegisterUserRequest $request)
{
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password)
]);
return response()->json([
'data'=>'User Created'
],201);
}
}
最后我们打开postman点击Send
返回:
{
"data": "User Created"
}
我们再点击Send
返回:
{
"message": "The given data was invalid.",
"errors": {
"email": [
"The email has already been taken."
]
}
}
至此我们已经完成了用户注册