猿问

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

我有用户表,其中包含有关用户及其角色的信息,因此这里的唯一是“电子邮件”,“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();

    });


UYOU
浏览 129回答 1
1回答

梵蒂冈之花

好的解决方案是添加一个新的关系表,例如user_role(user_role.user_id,user_role.role_id),并使用一个唯一字段(电子邮件或电话)创建索引。但是,您需要在登录表单或其他位置添加角色下拉列表。或者改变“获取的礼仪”。例如,如果用户具有客户角色和业务角色,则可以授予他访问这两个角色的所有功能的权限。另一种解决方案是将角色下拉列表添加到密码重置表单中...另一个解决方案是重置所有用户行的密码。通过这种方式,用户可以通过电子邮件更改角色以进行登录
随时随地看视频慕课网APP
我要回答