首页
学习
活动
专区
工具
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官方文档

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

相关·内容

4种Windows系统下Laravel框架的开发环境安装及部署方法详解

最新版下载地址:PHP 5.6.28版(32位)|PHP 7.0.13版(32位)这两个版本的XAMPP都不再支持WindowsXP操作系统,这意味着你需要更高版本的Windows操作系统。.../laravel --prefer-dist 即可在该目录安装一个目录名的laravel的新的Laravel应用,如果你想指定自定义的安装目录名,laravelapp,则使用如下命令即可: composer...确保laravel.bat所在目录(默认是C:\Users\用户名\AppData\Roaming\Composer\vendor\bin,将”用户名”换成你的当前用户名)位于系统路径,否则将不能调用...同样可以使用上面配置的http://localhost/laravelp/public访问刚刚安装的Laravel应用: 4使用Laravel官方安装包 ?...如果你想要略过上面使用ComposerLaravel安装器安装的繁琐过程,而直接使用一个现成的、已安装好依赖的Laravel包,可点击下面的下载链接下载最新版本Laravel包: Laravel最新一键安装包

3.6K20

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

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

6K20
  • laravel与thinkphp之间的区别与优缺点

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

    5.6K20

    laravel开发环境homestead搭建过程详解

    常见的几种开发环境 Laravel的开发环境其实很多,因为它本身就是PHP,所以只要满足版本的情况下,任何pHP环境他都能跑起来,比如说常见的wamp/mamp/phpstudy等集成化环境都是可以的,...VirtualBox 支持大部分流行的系统,:Mac, Windows, Linux 等。 下载地址: 下载地址 选择window hosts即可下载,大小位100多MB,安装完毕备用。 3....下载地址: 下载地址 大小200多MB 4.安装Homestead box 第一种–在线安装 Homestead Vagrant Box(不推荐) 这样安装下载会非常慢,我安装了好多次都失败了,可以使用第二种本地文件安装方式...用户名和密码分别是 homestead / secret 。 注意:只有从本地连接 Homestead 的数据库时才能使用这些非标准的端口。...而 Laravel 在虚拟机 运行时还是应该使用默认的 3306 和 5432 端口进行数据库连接。

    5.7K10

    牛哇,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。

    26020

    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库仓库

    59220

    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

    52010

    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 程序,一行代表一个语句结束。

    74621

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

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

    5.4K20

    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

    通过 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.6K20
    领券