为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel,如何将密码重置为用户表中重复的电子邮件

Laravel,如何将密码重置为用户表中重复的电子邮件

PHP
呼唤远方 2022-07-29 16:53:53
我有用户表,其中包含有关用户及其角色的信息,所以这里唯一的是 'email'、'role_id'、'phone' 组合在一起,所以电子邮件可以重复但如果 role_id 和电话号码重复则不能重复,这是因为用户可以是客户,即role_id=1,或者他的帐户是企业帐户,即role_id=2,但是如果该客户需要重置其客户密码或企业帐户密码怎么办?我怎样才能做到这一点?桌子    Schema::create('users', function (Blueprint $table) {        $table->engine = 'InnoDB';        $table->increments('id');        $table->string('fname');        $table->string('lname');        $table->boolean('role_id')->default(1);        $table->string('phone');        $table->string('email');        $table->unique(['email', 'role_id','phone']);        $table->string('password');        $table->boolean('status')->default(1);        $table->rememberToken();        $table->timestamp('email_verified_at')->nullable();        $table->timestamps();    });
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

  1. 好的解决方案是添加一个新的关系表,例如 user_role (user_role.user_id, user_role.role_id) 并使用一个唯一字段(电子邮件或电话)创建索引。

但是您需要在登录表单或其他地方添加角色的下拉列表。或更改“访问权限”。例如,如果用户具有客户角色和业务角色,您可以让他访问这两个角色的所有功能。

  1. 另一种解决方案是在密码重置表单中添加角色下拉列表...

  2. 另一种解决方案是为所有用户行重置密码。这样,用户可以通过电子邮件更改角色进行登录


查看完整回答
反对 回复 2022-07-29
  • 1 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号