首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于如何实用地允许一个Laravel用户添加另一个用户的建议

关于如何实用地允许一个Laravel用户添加另一个用户的建议
EN

Stack Overflow用户
提问于 2019-12-28 11:08:35
回答 1查看 38关注 0票数 1

我需要在我的Laravel设置(它使用标准的Auth模型/控制器)上允许登录的用户在站点上创建另一个用户帐户。在我的“添加用户”页面上,我对来自auth.register的表单进行了包含,它在页面上显示得很好(太棒了!),但当我填写表单并提交它时,它只是重新加载页面,没有任何错误,并且新用户没有添加到数据库中。

我需要与标准auth.register不同的东西是

1)在users表中将有一列将两个用户配对。

2)我希望验证电子邮件不同于他们自己注册的电子邮件。

3)我也在考虑不让创建用户选择密码,而是让新用户通过初始电子邮件重置密码。

有没有什么Laravel的方法来完成这一切,或者我必须自己写?

EN

回答 1

Stack Overflow用户

发布于 2019-12-28 12:43:21

1) users表中将有一列将两个用户配对。

查看您的RegisterController并查看其中包含的use RegisterUsers特征。无论您从这个特征中复制什么并将其移动到RegisterController中,它都会被您的逻辑而不是特征逻辑覆盖。

对于配对,您可以使用create()方法。一种非常伪装的方式:

代码语言:javascript
运行
复制
protected function create(array $data) {
    $pair = // find a random user

    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'pair_id' => $pair->id
    ]);
}

2)我希望验证电子邮件不同于他们自己注册的电子邮件。

为此,我不确定您已经在哪里触发了它,但是email事件默认存在于EventServiceProvider中:

代码语言:javascript
运行
复制
protected $listen = [
    Registered::class => [
        SendEmailVerificationNotification::class,
    ]
];

将其更改为您的自定义电子邮件,您应该会很好。

3)我也在考虑不让创建用户选择密码,而是让新用户通过初始电子邮件重置他们的密码。

同样,在create()方法中,你可以只分配一个随机的密码,然后通过你的电子邮件,以某种方式将它们重定向到ResetPassword操作。这需要一些时间来为我弄清楚,但请参阅重置密码路由(与php artisan route:list),所以它接受和在您的自定义电子邮件中,放置必要的链接按钮。

在这种情况下,请确保您在注册后没有立即登录用户。

所以,底线-身份验证默认逻辑存在于它们的特征中,如果你想覆盖一些,只需将该方法复制/粘贴到你的控制器,并根据你的意愿对其进行调整。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59507798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档