gpt4 book ai didi

php - 如何在laravel nova中使用用户名而不是电子邮件登录?

转载 作者:行者123 更新时间:2023-12-04 01:29:16 25 4
gpt4 key购买 nike

在我现有的 Laravel 项目中,我使用用户名处理登录。

我已经在 app\Nova\User.php 上用用户名替换了电子邮件

请帮助我如何在 laravel nova 中使用用户名登录。
提前致谢。

最佳答案

我意识到这是一篇旧帖子,但我没有找到任何更新的内容,我想我会展示我处理这种情况的方法。

我创建了一个新的 Controller

<?php

namespace App\Http\Controllers\Nova;

use Illuminate\Http\Request;

class LoginController extends \Laravel\Nova\Http\Controllers\LoginController
{
public function authLogin(Request $request)
{
$request->request->add(['username' => $request->email]);

return $this->login($request);
}
public function username()
{
return 'username';
}
}

并创建一个新路由来覆盖 nova 路由
Route::post('nova/login', 'Nova\LoginController@authLogin');

所以你会注意到我扩展了 Nova Controller 。在我们的 Controller 中,我们将添加用户名函数,该函数将返回您的“用户名”字段。
现在 Nova 将使用您的新功能提供的用户名字段进行登录。

BUT……不是那么简单的哥们儿。

现在 Nova 认为表单会将您的用户名字段作为由您的新用户名函数提供的“用户名”传递。
因此,让我们在新 Controller 中创建一个名为 authLogin 的函数。我们将获取当前表单字段“email”并将新的“用户名”字段附加到我们的请求中。
现在将请求传递给 Nova 提供的登录函数,并将新字段附加到请求中,让 Nova 处理其余的工作。

我不完全确定这种方法是一种“正确”的方法,但它可以防止覆盖核心文件或依赖复制的核心功能。

关于php - 如何在laravel nova中使用用户名而不是电子邮件登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51990187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com