laravel注册api编写

本文目录

一、注册api

1.1 创建注册路由

注册路由我们把它归属到认证模块去,在routes/auth.php下去写:

<?php

use App\Http\Controllers\Auth\RegisterController;

$api = app('Dingo\Api\Routing\Router');

$api->version('v1', function ($api) {
    // 路由组
    $api->group(['prefix' => 'auth'], function ($api) {
        // 注册
        $api->post('register', [RegisterController::class, 'store']);

        
    });
});

laravel注册api编写

1.2 创建注册控制器

运行命令php artisan make:controller Auth/RegisterController,创建注册控制器。
laravel注册api编写

1.3 创建表单验证类

运行命令php artisan make:request Auth/RegisterRequest
laravel注册api编写
laravel注册api编写
可以看到Http文件夹下就多了Requests文件夹以及验证文件。
效仿基础控制器,我们再建一个基础验证类。
运行命令:php artisan make:request BaseRequest
laravel注册api编写
laravel注册api编写


修改BaseRequest.php为如下:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class BaseRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }
}

然后RegisterRequest.php继承BaseRequest类,并写入规则:

<?php
<?php

namespace App\Http\Requests\Auth;

use App\Http\Requests\BaseRequest;
use Illuminate\Foundation\Http\FormRequest;

class RegisterRequest extends BaseRequest
{
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' => 'required|max:16',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6|max:16|confirmed',
        ];
    }
}

unique:users -> 邮箱在users表中唯一。
confirmed -> 表示必须要传一个password_confirmation确认密码字段并且和password字段值相等。


然后注册控制器不使用原始的request,而使用我们自己写的:

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\BaseController;
use App\Http\Requests\Auth\RegisterRequest;
use App\Models\User;
use Illuminate\Http\Request;

class RegisterController extends BaseController
{
    /**
     * 用户注册 
     */
    public function store(RegisterRequest $request) {
        $user = new User();
        $user->name = $request->input('name');
        $user->email = $request->input('email');
        $user->password = bcrypt($request->input('password'));
        $user->save();
        return $this -> response -> created();
    }
}

1.4 测试

测试:
laravel注册api编写
laravel注册api编写

1.4.1 配置语言包

可以看到我们的验证提示都是英文的,我们可以去下载中文包去配置。
laravel配置语言包请查看这篇文章

1、默认效果

配置完中文语言包的效果:
laravel注册api编写


2、自定义提示消息

如果说我们不想要它默认的,想要自定义的,我们可以在RegisterRequest.php这样写(其他类似):

public function messages() {
        return [
            'email.unique' => '邮箱已经存在,你还想注册?怎么不上天呢?'
        ];
    }

laravel注册api编写
效果:
laravel注册api编写

1.4.2 更改时区

config/app.php修改:
'timezone' => 'Asia/Shanghai'
laravel注册api编写

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

上一篇:【模板】支配树


下一篇:GEM/SECS设备自动化和EAP自动化软件