微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Laravel Jetstream中设置用户当前团队

如何解决如何在Laravel Jetstream中设置用户当前团队

我的应用程序要求管理员具有创建用户注册权限的能力。这意味着该帐户是为他们“半创建”的。在此过程中,设置团队分配。在此过程结束时,将生成一个链接,以允许用户完成帐户注册

$user = App\Models\User::create(array(
    'name' => 'New Person','email' => 'mail@example.com','password' => Hash::make(hex2bin(random_bytes(32)),'callsign' => 'New C/S','team'     => 1,'company' => 'Their company'
));

$teamToAssign = App\Models\Team::find(1); // This gets passed in but for demonstration purposes,assume its the first team
$teamToAssign->users()->attach($user,array('role' => 'participant'));
Laravel\Jetstream\Events\TeamMemberAdded::dispatch($teamToAssign,$user);

上面的帐户创建工作正常,但是,Jetstream需要一个“个人团队”,如果用户有“当前团队”,则可以忽略。我无法在Jetstreams的文档中找到将用户设置为当前团队的用法

我尝试过:

$user->currentTeam = $teamToAssign;
$user->update();

但这不起作用。我知道我可以使用直接数据库查询来更新当前团队,但更喜欢用Eloquent方法。如何将团队分配给用户currentTeamDocumentation仅提及如何查看用户当前的团队。

解决方法

您可以使用在特征HasTeams#L38中可以找到的内置方法switchTeam($team)

 $user->switchTeam($teamToAssign);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。