GVKun编程网logo

详解Laravel注册重构(laravel登录注册)

18

以上就是给各位分享详解Laravel注册重构,其中也会对laravel登录注册进行解释,同时本文还将给你拓展Laravel(1)注册重写、laravel注册api编写、laravel注册成功不跳转首页

以上就是给各位分享详解Laravel注册重构,其中也会对laravel登录注册进行解释,同时本文还将给你拓展Laravel(1) 注册重写、laravel注册api编写、laravel注册成功不跳转首页、laravel注册错误处理等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

详解Laravel注册重构(laravel登录注册)

详解Laravel注册重构(laravel登录注册)

下面由Laravel框架教程栏目给大家介绍Laravel注册重构,希望对需要的朋友有所帮助!

需要使用laravel搭建一个后台内容管理系统,但是laravel默认的登陆注册不能满足目前的需求
注册的话因为是用在后台,并且不需要使用邮箱注册的,而且会有一些额外的配置需要在注册时一起填写。

1. 首先确定用户注册的路由

我们在安装好laravel的时候默认生成的注册是用邮箱进行注册的,并且有些选项不需要,有些还需要加一些表单选项
我们注册的话,并不是可以随便注册的,只有一些超级管理员才能进行注册
首先我们使用上次创建的UserController进行配置,如果没有的话,可以使用PHP artisan make:controller UserController创建一个控制器类
然后创建两条路由Route::get('register', 'UserController@getRegister')Route::post('register', 'UserController@postRegister')
前者是显示一个注册的页面get请求,后面是注册账号的post请求。

2. 显示注册账号页面

这个使用的是getRegister这个方法,这个方法只需要显示一个视图所以并没有特别的逻辑

    public function getRegister()
    {
        return view('auth.register');
    }

3. 请求注册账号

这个使用的是postRegister这个方法
注册账号的话和重置密码一样,而且比注册账号还要简单点。
我们在往数据库里插入一条用户纪录的时候,可以使用User::create($data)进行插入。
$data是个数组,里面存放了每个字段的键和值

    public function postRegister(Request $request)
    {
        $rules = [
            'username'=>'required|unique:finance_enewsuser',
            'password' => 'required|between:6,20|confirmed'
        ];
        $messages = [
            'required'=>':attribute不能为空',
            'unique'=>'用户名已被注册',
            'between' => '密码必须是6~20位之间',
            'confirmed' => '新密码和确认密码不匹配'
        ];
        $username = $request->input('username');
        $password = $request->input('password');
        $group = $request->input('group');
        $data = $request->all();
        $validator = Validator::make($data, $rules, $messages);
        if ($validator->fails()) {
            return back()->withErrors($validator);
        }
        $data = [
            'username' => $username,
            'password' => bcrypt($password),
            'groupid' => $group,
            'checked' => 0,
            'styleid' => 1,
            'filelevel' => 0,
            'loginnum' => 0,
            'lasttime' => time(),
            'lastip' => '127.0.0.1',
            'truename' => '',
            'email' => '',
            'pretime' => time(),
            'preip' => '127.0.0.1',
        ];
        User::create($data); //插入一条新纪录,并返回保存后的模型实例
        //如果注册后还想立即登录的话,可以使用$user = User::create($data); Auth::login($user); 进行认证
        return redirect('/');
    }

4. 完成后的示例

UserController

    public function getRegister()
    {
        return view('auth.register');
    }

    public function postRegister(Request $request)
    {
        $rules = [
            'username'=>'required|unique:finance_enewsuser',
            'password' => 'required|between:6,20|confirmed'
        ];
        $messages = [
            'required'=>':attribute不能为空',
            'unique'=>'用户名已被注册',
            'between' => '密码必须是6~20位之间',
            'confirmed' => '新密码和确认密码不匹配'
        ];
        $username = $request->input('username');
        $password = $request->input('password');
        $group = $request->input('group');
        $data = $request->all();
        $validator = Validator::make($data, $rules, $messages);
        if ($validator->fails()) {
            return back()->withErrors($validator);
        }
        $data = [
                    'username' => $username,
                    'password' => bcrypt($password),
                    'groupid' => $group,
                    'checked' => 0,
                    'styleid' => 1,
                    'filelevel' => 0,
                    'loginnum' => 0,
                    'lasttime' => time(),
                    'lastip' => '127.0.0.1',
                    'truename' => '',
                    'email' => '',
                    'pretime' => time(),
                    'preip' => '127.0.0.1',
                ];
        User::create($data); //插入一条新纪录,并返回保存后的模型实例
        return redirect('/');
    }

register.blade

    <form class=login-form action={{ url('/register') }} method=post>
        {!! csrf_field() !!}
        <h3 class=font-green>Sign Up</h3>
        @if(count($errors) > 0)
            <p class=alert alert-danger display-hide style=display: block;>
                <button class=close data-close=alert></button>
                <span> {{ $errors->first() }}  </span>
            </p>
        @endif
        <p class=form-group>
            <label class=control-label visible-ie8 visible-ie9>用户名</label>
            <input class=form-control placeholder-no-fix type=text autocomplete=off placeholder=Username name=username> </p>
        <p class=form-group>
            <label class=control-label visible-ie8 visible-ie9>密码</label>
            <input class=form-control placeholder-no-fix type=password autocomplete=off id=register_password placeholder=Password name=password> </p>
        <p class=form-group>
            <label class=control-label visible-ie8 visible-ie9>重复密码</label>
            <input class=form-control placeholder-no-fix type=password autocomplete=off placeholder=Repeat password name=password_confirmation> </p>
        <p class=form-group>
            <label class=control-label visible-ie8 visible-ie9>用户组</label>
            <select name=group class=form-control>
                    <option value=1> 超级管理员 </option>
                    <option value=2> 管理员 </option>
                    <option value=3> 编辑 </option>
            </select>
        </p>
        <p class=form-actions>
            <button type=submit id=register-submit-btn class=btn btn-success uppercase pull-right>注册</button>
        </p>
    </form>

5. 中间件--用户必须登录

现在注册都完成了,我们就差用户的判断了。
需求注册账号必须只能是有超级管理员权限的账号才可以注册。
这种情况下按照我们一般的步骤就是在postRegister方法里直接查出用户的信息,然后查看用户是否满足这个权限,不满足的情况下就跳转到其它页面。
这种方法可以,但是,我们既然有超级管理员和管理员这些权限区分,肯定不止一个地方使用,其它地方也会用到。
然后会有人想到在model里写个方法,以后有需要都可以直接调用。
这个方法也可以,不过,我们推荐使用laravel提供的中间件这个功能,这个功能非常强大,也非常好用。现在我们就使用中间件这个功能。
因为我们是后台内容管理系统,所以,我们首先创建一个中间件,功能是,所有页面进入前,必须是登录状态,否则跳到登录页。
查看手册发现可以使用PHP artisan make:middleware CheckLoginMiddleware命令创建一个中间件,当然复制一个差不多的文件,改下也是一样的。
然后会在app/Http/Middleware/目录下创建了一个CheckLoginMiddleware中间件文件,里面只有一个handle()方法,我们直接在里面增加我们的功能

    <?PHP

    namespace App\Http\Middleware;

    use Closure;
    use Auth;

    class CheckLoginMiddleware
    {
        public function handle($request, Closure $next)
        {
            //使用Auth方法,需要引入use Auth;方法
            //$request->is('login')表示请求的URL是否是登录页
            //因为我们打算使用全局的,所以,需要把登录页排除,不然会无限重定向
            //如果你的登录页不是/login,而是/auth/login的话,就写$request->is('auth/login')
            //并且我们要在请求处理后执行其任务,因为我们需要获取到用户的登录信息
            $response = $next($request);
            if (!Auth::check() && !$request->is('login')) {
                return redirect('/login');
            }
            return $response;
        }
    }

这个中间件的功能是,如果有路由产生,首先使用Auth::check()判断用户是否登录,如果没有登录的跳转到登录页。
方法写好了,但是还不能使用,我们需要注册下这个中间件,告诉框架我们这个中间件写好了,可以使用了,使用的范围是哪里。
app/Http/目录下有个Kernel.PHP文件是注册这个中间件的,也就是告诉框架,我们写好了这个中间件。
Kernel.PHP文件里有两个数组属性,一个$middleware表示全局使用,一个$routeMiddleware表示可以选择使用。
全局使用的意思是,不管你请求哪个页面,都会先执行这个中间件。
选择使用表示,需要哪个HTTP请求,要求执行中间件,就在哪个地方执行。
这里每个页面都要求必须登录的话,可定是注册一个全局的,在$middleware数组属性里加入一条

\App\Http\Middleware\CheckLoginMiddleware::class

注册下,就可以使用了

PS:请记住,如果定义全局的要格外小心,比如上面我们要排除登录页,不然因为用户没有登录,所以在哪个页面都会重定向到登录页,当然也包括登陆页

5. 中间件--特殊页面需要验证用户组

现在是进行用户权限页面的限制,同样我们也要重新创建一个中间件
使用PHP artisan make:middleware CheckGroupMiddleware创建一个新的中间件,用来判断这个用户是否满足这个权限

    <?PHP

    namespace App\Http\Middleware;

    use Closure;
    use Auth;

    class CheckGroupMiddleware
    {
        public function handle($request, Closure $next)
        {
            $user = Auth::user();
            if ($user->groupid != 1) {
                return redirect('/');
            }
            return $next($request);
        }
    }

这里我们还是通过Auth::user()来获取到用户的信息,然后判断用户的组,不属于超级管理员就跳到首页。
然后我们在到app/Http/目录下有个Kernel.PHP文件是注册这个中间件的,这次我们注册为可以选择的中间件。
这个中间件因为是可以选择的,所以我们还需要给它起个别名,在$routeMiddleware数组属性里加如一条

    'user.group' => \App\Http\Middleware\CheckGroupMiddleware::class

创建一个可以使用usergroup这个名字使用的中间件。
创建好后,我们可以选择在哪里使用,一个是在router.PHP的路由文件里加入,一个是在controller里使用
router.PHP文件里使用

    Route::get('/', ['middleware' => ['user.group'], function () {
        //
    }]);

在控制器内使用

    $this->middleware('user.group');

这里我们选择在路由里添加中间件。让注册页面只能是超级管理员才可以注册

    Route::get('register', 'UserController@getRegister')->middleware('user.group');
    Route::post('register', 'UserController@postRegister')->middleware('user.group');

我们目前只有两个路由要判断权限,所以使用了链式的写法,当然你也可以按照手册里上使用组的方式,组的方式更为优雅。

当然如果你的整个控制器内的方法都需要中间件进行验证过滤的话,你也可以创建组的形式,也可以直接在控制器内使用__construct方法,让每次请求这个控制器时,先执行中间件

    class MyController extends Controller
    {
        public function __construct()
        {
            $this->middleware('user.group');
        }

        public function index()
        {
            return view('my.index');
        }
    }

Laravel(1) 注册重写

Laravel(1) 注册重写

配置路由
php<?php
Route::controllers([
  ''auth'' => ''Auth\AuthController'',
]);

这种路由配置方式对应的路径方式是 访问的方式+方法名 如在浏览器中使用get方式去访问register方法 那么这个路由会自动配置到这个类下面的getRegister方法。post也是一样

建立一个自己的注册页面

我在AuthControlle里建立一个自己的视图

php<?php
  public function getRegister(){
    return view("auth.register");
  }

上面已经说了路由的解析方式 只要配好路由就可以了

我们需要定义一个处理这个的注册处理类

接下来我会把所有的代码贴出来再代码中去讲解怎么重写 同样这个文件位于AuthController下

php
<?php public function postRegister(UserRegisterRequest $req){ //验证通过 注册用户 $data = $req->all(); $data[''register_ip''] = $req->ip(); $user = $this->registrar->create($data); return redirect()->intended(''/''); } ?>

大家会发现整个注册功能非常简单 那么具体可以在哪里做了注册的限制呢
其实是在UserRegisterRequest这个文件里去对所有填写的表单数据进行了控制

php<?php
 namespace App\Http\Requests;

use App\Http\Requests\Request;
use Config;
class UserRegisterRequest extends Request {

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

  /**
   * Get the validation rules that apply to the request.
   *
   * @return array
   */
  public function rules()
  {
             //自定义的电话号码正则表达式
    $regex = Config::get(''constant.phone_number_regex'');
    return [
      //对注册表单提交的信息进行验证
      "username" => [''required'',''min:3'',''max:16'',''unique:users''],
      "phone_number" => [''required'',''min:3'',''max:16'',''unique:users''],
      "password" => [''required'',''min:6'',''max:16'',''confirmed''],
      "verify_code" => [''required'',''digits:4''],

    ]; 
  }

  public function sanitize()
  {
    return $this->all();
  }

}

我们可以通过laravel自带的php artisan make:request 创建一个请求类
这个类可以对所有请求的数据进行控制,在rule里面定义好规则就可以控制请求的的数据,如果符合规则那么会继续访问。

改写注册添加数据操作

注册的目的就是为了将符合条件的数据写入用户表中 既然改写了请求的数据 那么自然也要改写请求的操作

注册成功后添加到用户数据库中 是在上面的 postRegister中的这一段代码来实现的

php<?php
$user =  $this->registrar->create($data);

找到这段代码 这段代码位于 services下的Registrar.php下

php<?php
  public function create(array $data)
  {

    $properties = [
      ''username'' => $data[''username''],
      ''password'' => bcrypt($data[''password'']),
      ''register_time'' => Carbon::now()->toDateTimeString(),
      ''register_ip'' => $data[''register_ip'']
    ];
    return User::create($properties);

    $user = new User();
    $user->save();
  }

将这个处理函数改成符合自己业务逻辑的函数就行了


Laravel 一步步实现权限控制(2) 登录重写

laravel注册api编写

laravel注册api编写

本文目录

  • 一、注册api
    • 1.1 创建注册路由
    • 1.2 创建注册控制器
    • 1.3 创建表单验证类
    • 1.4 测试
      • 1.4.1 配置语言包
        • 1、默认效果
        • 2、自定义提示消息
      • 1.4.2 更改时区

一、注册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']);

        
    });
});

在这里插入图片描述

1.2 创建注册控制器

运行命令PHP artisan make:controller Auth/RegisterController,创建注册控制器。

在这里插入图片描述

1.3 创建表单验证类

运行命令PHP artisan make:request Auth/RegisterRequest

在这里插入图片描述

在这里插入图片描述

可以看到Http文件夹下就多了Requests文件夹以及验证文件。
效仿基础控制器,我们再建一个基础验证类。
运行命令:PHP artisan make:request BaseRequest

在这里插入图片描述

在这里插入图片描述


修改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 测试

测试:

在这里插入图片描述


在这里插入图片描述

1.4.1 配置语言包

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

1、默认效果

配置完中文语言包的效果:

在这里插入图片描述


2、自定义提示消息

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

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

在这里插入图片描述


效果:

在这里插入图片描述

1.4.2 更改时区

config/app.PHP修改:
'timezone' => 'Asia/Shanghai'

在这里插入图片描述

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

laravel注册成功不跳转首页

laravel注册成功不跳转首页

先来解释一下什么是 laravel。

Laravel 是一个开源的 PHP Web 应用程序框架,用于快速开发 Web 应用程序。它采用 Model-View-Controller(MVC)架构模式,具有优雅的语法和强大的功能,能够帮助开发者构建现代化、可维护的 Web 应用程序。

现在,让我们来看一下有关 Laravel 注册成功不跳转首页的问题。

问题的简述

在使用 Laravel 开发 Web 应用程序的过程中,我们经常会遇到将用户注册成功后自动跳转到首页的需求。然而,有时候我们会发现,尽管用户已经成功注册,但是仍然停留在注册页面,无法自动跳转到首页。

问题的原因

这个问题的出现可能是由不同的因素引起的。下面是一些可能导致该问题的原因:

  1. 控制器代码问题

在 Laravel 中,我们通常通过编写控制器来处理用户提交的注册请求。如果控制器代码存在问题,可能会导致注册成功后无法跳转到首页。

  1. 路由问题

Laravel 中的路由控制着应用程序中的 URL。如果路由未正确配置,或者出现其他与路由相关的问题,可能会导致注册成功后无法跳转到首页。

  1. 页面跳转的代码问题

在 Laravel 中,我们可以使用重定向(Redirect)来跳转到其他页面。如果有问题,可能会导致注册成功后无法跳转到首页。

解决方案

针对不同的原因,我们需要采取不同的解决方案。下面是解决这个问题的一些可能方案:

  1. 检查控制器代码

请检查控制器代码,确保代码正确处理用户提交的注册请求。如果存在问题,请进行必要的修正。

  1. 检查路由配置

请检查路由配置,确保路由正确处理注册请求并将用户重定向到首页。如果路由存在问题,请进行必要的修正。

  1. 修改页面跳转的代码

请检查跳转代码,确保代码正确将用户重定向到首页。如果有问题,请进行必要的修正。

  1. 清除缓存

有时候,注册成功不跳转首页的问题可能是由于缓存导致的。在这种情况下,可以尝试清除缓存以解决问题。

结论

注册成功不跳转首页是一个常见的 Laravel 问题,但是也很容易解决。我们需要仔细检查代码、路由和页面跳转代码,以确保所有部分都正确处理用户注册请求和页面跳转。同时,我们还需要记得清除缓存以确保应用程序正常运行。通过细心的调试和修正,我们可以轻松地解决这个问题,让应用程序顺畅运行。

以上就是laravel注册成功不跳转首页的详细内容,更多请关注php中文网其它相关文章!

laravel注册错误处理

laravel注册错误处理

最近在使用 laravel 框架进行开发时,遇到了一些关于注册表单的错误处理问题。在本文中,我将分享我如何使用 laravel 的表单验证和错误处理功能来解决这些错误,以帮助其他开发者更好地处理注册表单的错误。

首先,我们需要了解 Laravel 中的表单验证和错误处理机制。在 Laravel 中,我们可以使用 Validator 类来验证表单数据。验证器可以验证输入数据是否满足规定的条件,如必填字段、邮箱格式、密码长度等等。如果输入数据不满足规定的条件,则验证器会返回一个错误数组。我们可以使用 withErrors() 方法将错误信息存储到 Session 中,然后在视图中显示错误信息。接下来,让我们看看如何在 Laravel 中实现这个功能。

首先,我们需要在注册控制器中创建一个验证器。我们可以使用 Artisan 命令 make:validator 来创建验证器。例如:

php artisan make:validator RegisterValidator
登录后复制

这会在 app/Validators 目录下创建一个名为 RegisterValidator 的验证器。然后我们需要设置验证规则和错误信息。打开 RegisterValidator 类,添加以下代码:

<?php

namespace AppValidators;

use IlluminateValidationValidator;

class RegisterValidator extends Validator
{
    protected $messages = [
        ''name.required'' => ''请输入用户名。'',
        ''name.max'' => ''用户名不能超过255个字符。'',
        ''email.required'' => ''请输入邮箱地址。'',
        ''email.email'' => ''请输入有效的邮箱地址。'',
        ''email.unique'' => ''该邮箱已经被注册。'',
        ''password.required'' => ''请输入密码。'',
        ''password.min'' => ''密码长度不能小于6个字符。'',
        ''password_confirmation.required'' => ''请输入确认密码。'',
        ''password_confirmation.same'' => ''两次输入的密码不一致。'',
    ];

    public function validateConfirmPassword($attribute, $value, $parameters)
    {
        $other = $this->getValue($parameters[0]);
        return isset($other) && strcmp($value, $other) === 0;
    }
}
登录后复制

在上面的代码中,我们定义了一些常见的验证规则和错误信息。如果用户没有输入必填项或者输入格式不正确,将会显示相应的错误信息。此外,我们还定义了一个自定义验证规则 validateConfirmPassword 来验证两次输入的密码是否一致。接下来,在注册控制器中添加以下代码:

<?php

namespace AppHttpControllers;

use AppUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
use AppValidatorsRegisterValidator;

class RegisterController extends Controller
{
    public function showRegistrationForm()
    {
        return view(''auth.register'');
    }

    public function register(Request $request)
    {
        // 验证表单数据
        $validator = Validator::make($request->all(), [
            ''name'' => ''required|string|max:255'',
            ''email'' => ''required|string|email|max:255|unique:users'',
            ''password'' => ''required|string|min:6|confirmed'',
        ]);

        // 使用自定义的 validator 类的规则验证数据
        $validator->setValidator(new RegisterValidator($validator->getTranslator()));

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator)->withInput();
        }

        // 创建用户
        $user = User::create([
            ''name'' => $request->input(''name''),
            ''email'' => $request->input(''email''),
            ''password'' => bcrypt($request->input(''password'')),
        ]);

        // 登录用户
        auth()->login($user);

        // 跳转到首页
        return redirect()->intended(''/'');
    }
}
登录后复制

在上面的代码中,我们使用 Laravel 内置的 Validator 类来验证表单数据。然后我们调用 setValidator() 方法来应用我们创建的自定义 validator 类的规则验证数据。如果有错误,我们将错误信息存储到 Session 中并将用户重定向回表单页面。如果验证通过,我们创建用户并将其登录。最后,我们将用户重定向到主页。

在模板中,我们可以使用以下代码来显示错误信息:

@if ($errors->any())
    <div>
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
登录后复制

上面的代码将遍历 $errors 变量中的所有错误信息,并将每个错误信息作为一个列表项进行显示。

在这篇文章中,我们学习了如何在 Laravel 中使用表单验证和错误处理功能来处理注册表单的错误。通过使用自定义 validator 类来扩展 Laravel 内置的 validator 功能,我们可以轻松地自定义规则和错误信息,提高代码的可重用性和可维护性。希望这篇文章能够帮助到你更好地处理表单验证和错误处理。

以上就是laravel注册错误处理的详细内容,更多请关注php中文网其它相关文章!

关于详解Laravel注册重构laravel登录注册的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Laravel(1) 注册重写、laravel注册api编写、laravel注册成功不跳转首页、laravel注册错误处理的相关信息,请在本站寻找。

本文标签: