首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在laravel 6.*或更高版本中使用3/4用户名?

在Laravel 6.*或更高版本中,使用3/4用户名需要进行以下步骤:

  1. 首先,在你的Laravel项目中创建一个自定义的用户认证控制器。可以通过运行以下命令来生成控制器:
代码语言:txt
复制
php artisan make:controller Auth\CustomAuthController
  1. 打开生成的控制器文件,添加以下方法来处理注册和认证:
代码语言:txt
复制
namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use App\User;

class CustomAuthController extends Controller
{
    use AuthenticatesUsers, RegistersUsers;

    protected $redirectTo = '/home';

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

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

    public function register(Request $request)
    {
        $this->validator($request->all())->validate();

        $user = $this->create($request->all());

        $this->guard()->login($user);

        return $this->registered($request, $user)
                        ?: redirect($this->redirectPath());
    }

    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'username' => ['required', 'string', 'max:255', 'unique:users'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);
    }

    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'username' => $data['username'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }
}
  1. 接下来,在config/auth.php配置文件中,更新providers数组的users部分,使用username替代默认的email
代码语言:txt
复制
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
        'username' => 'username', // 修改为username
    ],
],
  1. 修改注册和登录视图模板。在resources/views/auth/register.blade.phpresources/views/auth/login.blade.php中,将email字段替换为username
代码语言:txt
复制
<div class="form-group">
    <label for="username">Username</label>
    <input id="username" type="text" class="form-control" name="username" value="{{ old('username') }}" required autofocus>
    @error('username')
        <span class="invalid-feedback" role="alert">
            <strong>{{ $message }}</strong>
        </span>
    @enderror
</div>
  1. 最后,在路由文件中,将Auth\RegisterControllerAuth\LoginController替换为我们自定义的控制器:
代码语言:txt
复制
use App\Http\Controllers\Auth\CustomAuthController;

Route::get('register', [CustomAuthController::class, 'showRegistrationForm'])->name('register');
Route::post('register', [CustomAuthController::class, 'register']);
Route::get('login', [CustomAuthController::class, 'showLoginForm'])->name('login');
Route::post('login', [CustomAuthController::class, 'login']);
Route::post('logout', [CustomAuthController::class, 'logout'])->name('logout');

以上步骤完成后,你的Laravel应用程序将使用用户名作为认证凭据,并允许用户使用3/4用户名进行注册和登录。

请注意,这只是一个简单的示例,你可能需要根据你的具体需求进行定制和改进。关于laravel的更多信息,你可以参考Laravel官方文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel和Thinkphp有什么区别,哪个框架好用

Laravel和Thinkphp这两个php框架对于php程序员都不陌生,新手可能对Thinkphp比较熟,也是国内比较出名的开源框架,更高级的Laravel一般有点经验的才使用。...3、Laravel框架提供了大量的闭包 作为菜鸟的我目前只使用了use方法,即如何在函数内部使用外层变量。...4、post传值中注意点不同 在Laravel框架里,由于其考虑到了跨站攻击,所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound...6、Laravel里内置了大量的方法供开发者使用 在实际应用中更接近于”让对象完成一切”的开发思想,比如在后台表单验证的时候,Laravel内置了大量的验证方法。...7、加密方式 在TP框架中,我们对用户名密码进行加密时使用md5();的方式进行加密。

6.1K20

laravel与thinkphp之间的区别与优缺点

,安全性也更高,更适合开发大中型项目,被称为“巨匠型开发框架”。...3、Laravel框架提供了大量的闭包 作为菜鸟的我目前只使用了use方法,即如何在函数内部使用外层变量。...4、post传值中注意点不同 在Laravel框架里,由于其考虑到了跨站攻击,所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{{csrf_field()}}则会报出TokenMethodnotfound...6、Laravel里内置了大量的方法供开发者使用 在实际应用中更接近于”让对象完成一切”的开发思想,比如在后台表单验证的时候,Laravel内置了大量的验证方法。...7、加密方式 在TP框架中,我们对用户名密码进行加密时使用md5();的方式进行加密。

5.7K20
  • 牛哇,PHP这个开发框架真的好香!

    重点先学会应用增删改查 1.环境配置 前提:lavarel框架要对应php的版本,否则就有可能报错误~ 名称 版本号 Laravel 7.30.6 PHP 7.4.13 Composer 2.5.8...## 使用composer 创建一个为laravel-demo项目 composer create-project --prefer-dist laravel/laravel laravel-demo..."; }); 浏览器访问:http://127.0.0.1:8000/home/index 4.一些错误处理 lavarel框架要对应php的版本,否则就有一系列的错误~ composer无法安装依赖包...关联表的主键 protected $fillable = [ // 3.允许被批量操作的字段, 相当于python的一个Meta中的序列器 '...更高级的用法,更多内容建议看官方文档:https://learnku.com/docs/laravel/7.x/eloquent/7499 总结 laravel框架采取链式查询sql。

    26920

    github学习笔记(一)

    了解Git和Github 1.1 什么是Git Git是一个免费、开源的版本控制软件 1.2 什么是版本控制系统 版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统。...Github可以托管各种git库,并提供一个web界面(用户名.github.io/仓库名) 1.4 Github和Git是什么关系 Git是版本控制软件 Github是项目代码托管的平台,借助git...使用Github 2.1 目的 借助github托管项目代码 2.2 基本概念 仓库(Repository) 仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库 收藏(Star)...图标都可进入github主页:该页左侧主要显示用户动态以及关注用户或关注仓库的动态;右侧显示所有的git库 仓库主页 仓库主页主要显示项目的信息,如:项目代码,版本,收藏/关注/fork情况等...脚下留心 1、因为github在国外服务器所以访问较慢或者无法访问 2、私有仓库只能自己或者指定的朋友才有权限操作(私有仓库是收费的) 3、新注册的用户必须 验证邮箱 后才可以创建git库仓库

    59520

    Webman实战教程:基于Casbin的权限管理访问控制插件应用

    支持RBAC中的多层角色继承,不止主体可以有角色,资源也可以具有角色。 支持超级用户,如 root 或 Administrator,超级用户可以不受授权策略的约束访问任意资源。...如使用 laravel的数据库 illuminate/database,请按照官方文档按照相应的依赖包:https://www.workerman.net/doc/webman/db/tutorial.html...1、模型配置 以下模型可以二选一,ThinkORM(默认) 使用ThinkORM(默认) 修改数据库 thinkorm.php 配置 使用laravel数据库(可选) 修改数据库 database.php...( `v3` ) USING BTREE, KEY `idx_v4` ( `v4` ) USING BTREE, KEY `idx_v5` ( `v5` ) USING BTREE ) ENGINE...= INNODB CHARSET = utf8mb4 COMMENT = '策略规则表'; 3、配置 config/redis 配置 4、重启webman php start.php restart

    55810

    Laravel处理请求的工作流程

    然后,它通过调用 bootstrap/app.php 文件来引导 Laravel 应用。3....这个实例是整个 Laravel 应用的中心,负责管理配置、服务容器、事件监听器等。4. 请求生命周期a....请求解析Laravel 使用 Illuminate\Http\Request 类来封装 HTTP 请求。这个类包含了请求的所有信息,如路径、查询字符串、头部信息等。b....异常处理和错误日志如果在处理请求的过程中发生异常或错误,Laravel 会使用异常处理器(Exception Handler)来捕获这些异常,并根据需要记录错误日志或将错误信息返回给用户。6....应用关闭操作(可选)在请求完全处理完毕后,Laravel 会执行一些关闭操作,如关闭数据库连接等。这一步骤是通过在 Kernel 类中定义的 terminatingMiddleware 方法来实现的。

    7400

    Laravel 数据库连接配置和读写分离

    今天开始讲如何在 Laravel 中操作数据库,Laravel 为我们提供了多种工具实现对数据库的增删改查,在我们使用 Laravel 提供的这些数据库工具之前,首先要连接到数据库。...随着应用访问量的增长,对数据库进行读写分离可以有效的提升应用整体性能,关于数据库层面的读写分离配置不属于本教程讨论范畴,我们这里只讨论从应用层面如何在 Laravel 项目中配置读写分离连接。...好办,上面这种配置默认读写连接使用的用户名密码一样,那我们在读写配置项中分别独立配置就好了: 'mysql' => [ 'driver' => 'mysql', 'read' => [...针对读写分离数据库的连接,Laravel 数据库底层会自动判断,如果是查询语句会使用读连接,如果是数据库插入、更新、删除等操作会使用写连接。...所以在 Laravel 中实现读写分离还是很方便的,我们只需要做好配置就好了,剩下的框架帮我们完成。

    5.5K20

    通过 PHP 代码发送 HTTP 响应与文件下载

    耳听为虚,眼见为实,下面学院君结合常见的使用场景来演示如何在 PHP 中设置 HTTP 响应并发送给客户端。...3、重定向 在 PHP 中,可以通过设置 Location 响应头对用户请求进行重定向: ?...4、HTTP 基本认证 如果某个页面需要经过 HTTP 基本认证才能访问,可以通过设置 WWW-Authenticate 响应头来告知客户端请求用户: ?...对于这种 HTTP 基本认证中提交的用户名和密码,PHP 默认已经将它们封装到超全局变量 $_SERVER 的 PHP_AUTH_USER 和 PHP_AUTH_PW 字段中(HTTP 协议默认会通过请求头...else { header('HTTP/1.1 401 Unauthorized'); echo '用户认证失败,请刷新页面重试'; } } 如果用户提交的用户名或密码不正确

    4.7K20

    10个技巧优化PHP程序Laravel 5框架

    Memcached 来存储会话 config/session.php 使用专业缓存驱动器 config/cache.php 数据库请求优化 为数据集书写缓存逻辑 使用即时编译器(JIT),如:HHVM...注意:路由缓存不会随着更新而自动重载,所以,开发时候建议关闭路由缓存,一般在生产环境中使用,可以配合 Envoy 任务运行器 一起使用。 3....4. 自动加载优化 此命令不止针对于 Laravel 程序,适用于所有使用 composer 来构建的程序。此命令会把 PSR-0 和 PSR-4 转换为一个类映射表,来提高类的加载速度。...或者 Redis 等专业的缓存软件: 'driver' => 'memcached', 6....使用即时编译器 HHVM 和 OpCache 都能轻轻松松的让你的应用程序在不用做任何修改的情况下,直接提高 50% 或者更高的性能,PHPhub 之前做个一个实验,具体请见:使用 OpCache 提升

    5.4K20

    Go语言基础

    语言劣势 缺点 1:缺少框架 Go 语言没有一个主要的框架,如 Ruby 的 Rails 框架、Python 的 Django 框架或 PHP 的 Laravel。...在很多案例情况中确实如此,但如果只是希望构建一个简单的 CRUD API,那么使用 Django/DJRF、Rails Laravel 或 Phoenix 将简单地多。...缺点 3:软件包管理 Go 语言的软件包管理绝对不是完美的。默认情况下,它没有办法制定特定版本的依赖库,也无法创建可复写的 builds。...6.当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的...6 个标记是(每行一个): 1. fmt 2. . 3. Println 4. ( 5. "Hello, World!" 6. ) 行分隔符 在 Go 程序中,一行代表一个语句结束。

    75321
    领券