Laravel Spark:如何开启团队计费?

Laravel Spark: How to turn on Team Billing?

在 Laravel Spark 中打开团队计费是否有已知的科学依据?

也就是说,如果您想使用Laravel Spark的团队计费功能,您需要create your project with the team-billing选项。

但是,(假设,他撒了谎)如果您 没有 使用 --team-billing 标志创建项目并且突然需要团队计费功能,是否有如何打开它?

如果没有,是否有您需要更改的文件的文档列表?

我意识到我可以生成两个新项目,一个有团队计费,一个没有,然后比较生成的项目以自己执行此操作,但这似乎是一条容易出错的路线。在走那条路之前,我想知道这方面是否有已知的科学依据。

根据文档 (https://spark.laravel.com/docs/4.0/teams),它所需要的只是将特征 Laravel\Spark\CanJoinTeams 添加到您的用户模型中:

If you installed your application without the --team-billing flag but still want to enable teams later, you may simply add the Laravel\Spark\CanJoinTeams trait to your User model.

There is an open issue with people discussing this. 从这个 post 开始,它可能但不是很干净,并且可能容易出错。

一般建议是重新开始一个启用团队计费的新项目,然后移植您需要的代码。

我自己对此进行了一些调查,并有一个截至 2017 年 7 月 14 日有效的解决方案。这可能会在未来的 Spark 更新中发生变化,所以 YMMV。请参阅下文了解检查系统之间差异的最佳方法。

启用团队计费

首先,如其他地方所述,您需要将 Laravel\Spark\CanJoinTeams 特征添加到您的 App\User class.

#File: app/User.php
use Laravel\Spark\CanJoinTeams;
use Laravel\Spark\User as SparkUser;

class User extends SparkUser
{
    use CanJoinTeams;
    /* ... */
}

其次,您需要在 Spark 提供商中添加 团队计划(而不是个人计划)。即这些默认值。

#File: app/Providers/SparkServiceProvider.php
public function booted()
{
    Spark::useStripe()->noCardUpFront()->trialDays(10);

    Spark::freePlan()
        ->features([
            'First', 'Second', 'Third'
        ]);

    Spark::plan('Basic', 'provider-id-1')
        ->price(10)
        ->features([
            'First', 'Second', 'Third'
        ]);
}

需要

public function booted()
{
    Spark::useStripe()->noCardUpFront()->teamTrialDays(10);

    Spark::freeTeamPlan()
        ->features([
            'First', 'Second', 'Third'
        ]);

    Spark::teamPlan('Basic', 'provider-id-1')
        ->price(10)
        ->features([
            'First', 'Second', 'Third'
        ]);
}

用于团队计划。另外,如果不是很明显,您可以同时为一个系统 个个人计划和团队计划。

区分 Spark 版本

如果您多年后来到这里,并且想了解您的 Spark 版本需要什么,这是我发现的最佳方法。

首先,创建一个带有团队计费的Spark项目

spark new project-name --team-billing

然后将 project-name 文件夹重命名为 with-team-billing

mv project-name with-team-billing

然后,对一个项目做同样的事情没有团队计费

spark new project-name --team-billing    
mv project-name without-team-billing

然后,使用您最喜欢的 diff 命令递归地比较这两个文件夹

diff -r with-team-billing without-team-bill    
bbdiff with-team-billing without-team-bill    

创建同名的两个项目很重要,因为会生成许多 node/npm 文件,其中包含缓存的文件路径值。它们与我们的目标无关,只会弄乱 diff 结果。