【发布时间】:2021-02-11 19:50:00
【问题描述】:
我的应用程序需要管理员能够为用户创建注册访问权限。这意味着该帐户为他们“创建了一半”。在这个过程中,团队分配被设置。此过程结束时将生成一个链接,以允许用户完成帐户注册。
$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 方法。如何将我的团队分配给用户 currentTeam ? Documentation 仅提及如何查看用户当前团队。
【问题讨论】:
-
你可以使用
$user->switchTeam($team);source -
谢谢!如果您将此作为答案,我一定会标记它。我认为这个取代 Auth 的新 Laravel 8.x Jetstream 功能是新的,并且在文档@ClémentBaconnier 中仍处于很多测试阶段