【问题标题】:Laravel, How to reset password to email where duplicated in users tableLaravel,如何将密码重置为用户表中重复的电子邮件
【发布时间】:2020-01-25 15:51:02
【问题描述】:

我有 users 表,其中包含有关用户及其角色的信息,所以这里唯一的是 'email', 'role_id','phone' 组合在一起,所以 email 可以重复,但如果 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();
    });

【问题讨论】:

    标签: php laravel


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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 2020-02-14
      • 2018-03-13
      • 1970-01-01
      相关资源
      最近更新 更多