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

mrphzbgm  于 12个月前  发布在  PHP
关注(0)|答案(1)|浏览(111)

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

$user = App\Models\User::create(array(
    'name' => 'New Person',
    'email' => '[email protected]',
    '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需要一个“个人团队”,如果用户有一个“当前团队”,可以忽略它。我在Jetstream的文档中找不到设置用户当前团队的用法。
我试过:

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


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

5uzkadbs

5uzkadbs1#

您可以使用内置方法switchTeam($team),该方法可以在trait HasTeams#L38中找到

$user->switchTeam($teamToAssign);

字符串

相关问题