我有用户表,其中包含有关用户及其角色的信息,因此这里的唯一是“电子邮件”,“role_id”,“电话”组合在一起,因此电子邮件可以复制,但如果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贡献1900条经验 获得超5个赞
好的解决方案是添加一个新的关系表,例如user_role(user_role.user_id,user_role.role_id),并使用一个唯一字段(电子邮件或电话)创建索引。
但是,您需要在登录表单或其他位置添加角色下拉列表。或者改变“获取的礼仪”。例如,如果用户具有客户角色和业务角色,则可以授予他访问这两个角色的所有功能的权限。
另一种解决方案是将角色下拉列表添加到密码重置表单中...
另一个解决方案是重置所有用户行的密码。通过这种方式,用户可以通过电子邮件更改角色以进行登录
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消