Laravel创建API用户注册(实测有效)

235 阅读1分钟

用户注册准备工作 首先安装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的先安装一下

  1. 首先创建一个New Collection命名为:talking

  2. 右键talking点击Add Folder创建子目录:Auth

  3. 在Auth目录下点击三个小圆点,点击Add Request创建名称:Register

  4. 打开Register进行测试请求方式改为POST

  5. 请求地址:http://talking/api/register

  6. 接下来点击地址下面的: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."
        ]
    }
}

至此我们已经完成了用户注册