Laravel:在 ForgotPasswordController 中更改守卫

Ada*_*dam 1 php laravel-5.5

我使用该php artisan make:auth功能快速构建了“重置密码”和“忘记密码”选项。

当我转到“忘记密码”并输入注册用户的电子邮件时,我收到一条消息,提示找不到该电子邮件。自从我改变了我的默认防护后就发生了这种情况。

我怎样才能解决这个问题?我想用于ForgotEmailController非默认防护,这与特定模型相关。我认为控制器没有在正确的数据库中从特定的警卫那里搜索电子邮件。但没有办法像 in 那样default guard()覆盖 in 。ForgotEmailControllerResetPasswordController

Ada*_*dam 5

由于我没有使用默认模型,因此我需要使用自定义代理:

use Illuminate\Support\Facades\Password;

class ForgotPasswordController extends Controller
{
  // ...

  // Password Broker for Seller Model
  public function broker()
  {
       return Password::broker('dogs');
  }
}
Run Code Online (Sandbox Code Playgroud)

代理类“dogs”已定义在config/auth.php

'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets',
            'expire' => 60,
        ],
        'dogs' => [
            'provider' => 'dogs',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],


'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    'dogs' =>[
        'driver' => 'eloquent',
        'model' => App\Dogs::class,
    ],

    // 'users' => [
    //     'driver' => 'database',
    //     'table' => 'users',
    // ],
],
Run Code Online (Sandbox Code Playgroud)