【问题标题】:Laravel Spark: How to turn on Team Billing?Laravel Spark:如何打开团队计费?
【发布时间】:2017-12-18 14:11:17
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: php laravel laravel-spark


    【解决方案1】:

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

    启用团队计费

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

    #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    
    

    创建具有相同名称的两个项目很重要,因为会使用缓存的文件路径值生成许多节点/npm 文件。它们与我们的目标无关,只会混淆差异结果。

    【讨论】:

      【解决方案2】:

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

      如果您安装的应用程序没有 --team-billing 标志但仍想稍后启用团队,您可以简单地将 Laravel\Spark\CanJoinTeams 特征添加到您的 User 模型。

      【讨论】:

      • 感谢 Marco -- +1 提供有用的信息。然而——一些关于差异方法的早期研究也显示了 SparkServiceProvider 的一些变化。看起来那些文档不完整,所以我将把它打开一段时间,以防出现更完整的答案。
      【解决方案3】:

      There is an open issue with people discussing this. 在这篇文章中,它可能但不是很干净,并且可能容易出错。

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

      【讨论】:

        猜你喜欢
        • 2017-12-20
        • 1970-01-01
        • 2021-08-24
        • 2019-08-31
        • 2021-11-18
        • 2014-11-12
        • 2018-08-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多