当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.7.28覆盖getAuthPassword仍会引发未定义的索引:password

严阳夏
2023-03-14

我最近进入了Laravel,我想为我的webapp创建一个用户系统

我使用php artisan make:auth创建了Laravel的标准认证视图/控制器。现在我想更改用户表的列名。我想把名字改成用户名,把email改成userEmail,把password改成userPassword。

注册工作非常好,但是登录有问题。

在做了一些小的调整后,如http://www.lasselaursen.com/post/changing-standard-fieldcolumn-names-in-laravel-5s-default-users-table中所述,例如,我在LoginController中覆盖登录,而不是在AuthController中覆盖postLogin。

当我现在尝试登录时,我总是会看到调试窗口:未定义索引:password in..\vendor\laravel\framework\src\illumb\Auth\GenericUser.php

我在User.php类中重写了函数getAuthPassword(),如下所示

public function getAuthPassword()
{
    return $this->userPassword;
}

我在LoginController上的登录功能如下所示:

public function login(Request $request)
{
    $this->validate($request, [
        'userEmail' => 'required|email', 'password' => 'required',
    ]);

    $credentials = $request->only('userEmail', 'password');

    if (Auth::attempt($credentials, $request->has('remember')))
    {
        return redirect()->intended($this->redirectTo);
    }

    return redirect($this->loginPath())
        ->withInput($request->only('userEmail', 'remember'))
        ->withErrors([
            'userEmail' => $this->getFailedLoginMessage(),
        ]);
}

我将邮件的login.blade.php中的name字段更改为userEmail,并将password字段保留为password。

我觉得我错过了一些很明显的东西,但我就是找不到。。。

如果您需要更多的代码片段,请随时联系我。

共有1个答案

满才
2023-03-14

默认情况下,Laravel将使用电子邮件字段进行身份验证。由于您已将其自定义为userEmail,因此还必须在LoginController上定义用户名方法,如下所示:

public function username()
{
    return 'userEmail';
}
 类似资料:
  • 问题内容: 我是PHP的新手,并且在会话方面更是初学者。我有index.php页面,用户可以在其中注册和登录。表单分别发布到validate.php和loginvalidate.php页面,以进行注册和登录。 加载时在index.php上出现以下错误: 1)注意:未定义的索引:已注册2)注意:未定义的索引:从未使用 我已经尝试过多种方式来修改我的文字,但是我从来没有解决错误。 Index.php

  • 问题内容: 我正在尝试重新学习一些用于编写简单登录脚本的PHP基础知识,但是遇到了以前从未收到的错误(一年多以前我制作了相同的脚本,但从未遇到此错误。我尽可能简化了代码我可以测试一下哪个区域出了问题,这就是问题所在: 现在,当我将变量发送到脚本时,此代码可以正常工作,但是如果未提供任何变量,它将发出错误。从理论上讲,这会很好,因为如果没有提供用户名/密码,则可能会出现错误。在将代码发送到脚本之前,

  • 问题内容: 这听起来真的很愚蠢,但我无法弄清楚为什么会收到此错误。 我创建了一个选择框,以我的html形式命名为“ query_age”: 在相应的php形式中,我有: 运行页面时,出现此错误: 注意:未定义的索引:第19行的index.php中的query_age 我不明白为什么会这样,我很想知道如何解决它。 问题答案: 我没有看到php文件,但是可能就是这样- 在您的php文件中替换: 与:

  • 主要内容:什么是覆盖索引查询?,使用覆盖索引查询你可能听说过列索引是通过最大限度地减少查询所需的磁盘访问次数来优化查询性能的好方法。MongoDB 有一个字段索引的特定应用程序,称为覆盖索引查询(Covered Queries),其中查询的所有列都被进行索引。因为 MongoDB 不必检查除索引之外的任何文档,所以覆盖索引查询非常快。本节我们就来学习一下如何使用覆盖索引查询更快地查询数据。 什么是覆盖索引查询? 根据 MongoDB 官方文档,

  • 问题内容: 我正在使用Bootstrap 3,并且有一个显示一些数据的表。在此表中,我已应用了一些JavaScript进行条件格式设置,如果满足条件,则将元素的类设置为“红色” HTML的元素如下: 我现在在文本颜色适用的奇数行上有冲突,但是背景颜色被自举程序中的以下CSS覆盖。 我该如何解决此冲突并确保红色阶级有上风? 问题答案: 您的问题很可能与特异性有关。克里斯·科耶尔(ChrisCoyie

  • 问题内容: 当我尝试在其他PHP服务器上运行脚本时,出现了一个新问题。 在我的旧服务器上,即使未声明任何参数,以下代码也可以正常工作。 但是现在,在本地计算机(XAMPP-Apache)上的本地服务器上,如果未定义for的值,则会出现以下错误。 如果为声明了值,但脚本要调用某些javascript函数会发生什么,但是如果未声明任何内容,我希望页面能够正常加载。 你能帮助我吗? 问题答案: 错误报告