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

标签 php 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只提到如何查看用户当前团队。

最佳答案

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

 $user->switchTeam($teamToAssign);

关于php - 如何在 Laravel Jetstream 中设置用户当前团队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64589920/

相关文章:

php - 如何在 Laravel Blade 模板引擎中迭代二维数组

php - 为什么发生occuer语法错误,意外的 ';',期望的 ')'(查看:/var/www/resources/views/home.blade.php) [duplicate]

laravel - Inertia/Jetstream 将数据返回到页面而不重新渲染

php - 取消设置与模式匹配的数组项

php - 多个 MySQL 数据库的事件调度程序

javascript - PHP 未通过 $_POST 接收 AJAX POST 请求

php - 如何将 MySQL 查询转换为 Laravel Eloquent 查询?

java - AES-256-CBC 用 PHP 加密并用 Java 解密

laravel - 在 Laravel JetStream 中添加路由前缀

javascript - 如何在 vue.js 欢迎组件中使用 Bootstrap 而不是尾风 CSS