我有用戶表,其中包含有關用戶及其角色的信息,所以這里唯一的是 '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個贊
好的解決方案是添加一個新的關系表,例如 user_role (user_role.user_id, user_role.role_id) 并使用一個唯一字段(電子郵件或電話)創建索引。
但是您需要在登錄表單或其他地方添加角色的下拉列表?;蚋摹霸L問權限”。例如,如果用戶具有客戶角色和業務角色,您可以讓他訪問這兩個角色的所有功能。
另一種解決方案是在密碼重置表單中添加角色下拉列表...
另一種解決方案是為所有用戶行重置密碼。這樣,用戶可以通過電子郵件更改角色進行登錄
- 1 回答
- 0 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消