php - 密码重置表列名称覆盖 laravel 5

标签 php laravel laravel-5

你好 friend 我已经修改了密码重置表列名称“created_at”而不是“created”。如果我在迁移时更改列名“created”,但我收到错误列未找到“created_at”。

 \vendor\laravel\framework\src\Illuminate\Auth\Passwords\DatabaseTokenRepository.php
 protected function getPayload($email, $token)
{
    return ['email' => $email, 'token' => $token, 'created_at' => new Carbon];
}

这是来自列名称“created_at”的文件,我可以在其中覆盖此功能,请建议我..

最佳答案

我想我找到了一种无需触及 vendor 目录即可执行此操作的方法。

对于 Laravel 5.2

  1. 创建一个扩展 Illuminate\Auth\Passwords\DatabaseTokenRepository 的类>
  2. 在那里覆盖getPayload()方法
  3. 创建一个扩展Illuminate\Auth\Passwords\PasswordBrokerManager的类
  4. 覆盖 resolve() 方法以返回一个新的 PasswordBroker,其中包含第 1 步中的 token 存储库
  5. 打开 config/app.php 并从 providers 数组中注释掉 PasswordResetServiceProvider
  6. 在您的应用程序服务提供商中注册第 3 步中的密码代理管理器实例

    $this->app->singleton('auth.password', function ($app) { 返回新的 YourPasswordBrokerManager($app); });

    $this->app->bind('auth.password.broker', function ($app) { 返回 $app->make('auth.password')->broker(); });

对于 Lravel 5

  1. 创建一个扩展 Illuminate\Auth\Passwords\DatabaseTokenRepository 的类>
  2. 在那里覆盖getPayload()方法
  3. 创建一个扩展Illuminate\Auth\Passwords\PasswordResetServiceProvider的类
  4. 覆盖 registerTokenRepository() 以返回步骤 1 中的存储库
  5. 打开 config/app.php 并从 providers 数组中注释掉 PasswordResetServiceProvider
  6. 将第 3 步中的提供商添加到提供商数组

请注意,我还没有对此进行测试,但理论上应该可行。

关于php - 密码重置表列名称覆盖 laravel 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40483634/

相关文章:

php - 使用 PHP 将 19 位时间戳转换为日期时间

PHP和MYSQL DB设计: using a column vs another table

php - 在文本文件中获取用户的值 - PHP

javascript - 阻止 URL 漏洞

laravel - 在 Laravel 7.x 中找不到类 'Illuminate\Support\Facades\Http'

php - 在 Laravel 中将依赖参数传递给 App::make() 或 App::makeWith()

javascript - 将值 1-1-1 转换为三个不同的计时

laravel - 如何在 laravel 查询中添加括号?

laravel - 检查输入是否来自控制台

php - laravel 5 一对一关系显示外键名称字段