php - Laravel 重置密码添加 where 条件
问题描述
我为该项目有两个单独的身份验证,一个用于医生(登录、注册和重置)[帐户表],另一个用于患者(客户)(登录、注册和重置)[患者表]。
每个患者都可以使用同一邮件向任何医生(帐户)进行注册。
我已经做了所有的事情,但我的问题是当病人在特定的医生账户中重置他的密码时。Laravel 更改患者表中患者邮件的密码..
我的问题是:如何向 resetPassword 方法添加条件
例如:其中 mail = $mail 和 account_id = $account_id
我成功地覆盖了 sendRequestResetLinkMail 方法
PatientAuth\ForgotPasswordController.php:
public function sendResetLinkEmail(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
]);
$response = $this->broker()->sendResetLink([
'email' => $request->input('email'),
'account_id' => Hashids::decode($request->segment(3)),
]);
return $response == Password::RESET_LINK_SENT
? $this->sendResetLinkResponse($response)
: $this->sendResetLinkFailedResponse($request, $response);
}
重置密码控制器.php:
class ResetPasswordController extends Controller
{
public function __construct()
{
$this->middleware('lang');
}
//Client redirect path
protected function redirectTo(Request $request)
{
return route('WSG.view.home', $request->segments(3));
}
//trait for handling reset Password for patient / client
use ResetsPasswords;
//Show form to patient / client where they can reset password
public function showResetForm(Request $request, $id, $token = null)
{
$id = Hashids::decode($id);
$main_settings = WSGeneratorMainSetting::where('account_id', $id)->first();
return view('doctor_website.layouts.reset',
[
'token' => $token,
'email' => $request->email,
'main_settings' => $main_settings,
]
);
}
protected function credentials(Request $request)
{
return $request->only(
'email', 'password', 'password_confirmation', 'account_id' , 'token'
);
}
//returns Password broker of seller
public function broker()
{
return Password::broker('clients');
}
//returns authentication guard of seller
protected function guard()
{
return Auth::guard('client');
}
}
解决方案
推荐阅读
- actions-on-google - Google 操作中的会话属性
- python - 使用变量python 3将标准输出重定向到文件
- php - PHP多次调用循环函数的最佳方法
- laravel - 发现包时将 laravel 应用程序推送到 heroku 时表未定义
- angular - 更新 Angular 和 RxJS 5 到 6 后编译错误
- php - laravel5 认证
- python - 是什么导致腌制变压器和普通变压器之间的执行时间差异?
- html - 显示图标首先选择选项
- apache-kafka - 有没有办法为kafka生产者发送的消息设置延迟?
- google-cloud-platform - 无法访问 Google Cloud 上的 vm,被 Windows 防火墙阻止