升级到Laravel Spark 6;未定义的方法

时间:2018-11-06 22:13:35

标签: php laravel laravel-spark

我正在尝试迭代到最新的Laravel和Laravel Spark,目前遇到了从Laravel Spark 5到6的问题。加载我的应用程序时,出现以下错误:

Call to undefined method Laravel\Spark\Spark::teamString() (View: /home/vagrant/my-project/resources/views/vendor/spark/auth/register-common.blade.php)

据我所知,我的供应商文件夹中有Laravel Spark的正确实例,我已经composer dump-autoload并通过artisan清除了缓存。

根据说明,我在app.php中具有以下内容:

Laravel\Spark\Providers\SparkServiceProvider::class,
Laravel\Cashier\CashierServiceProvider::class,
App\Providers\SparkServiceProvider::class,

我缺少明显的东西吗?我该怎么做才能进一步调试呢?

2 个答案:

答案 0 :(得分:1)

升级我的Spark项目时遇到了这个问题,该修复程序将对Spark :: teamString的任何引用更改为Spark :: teamsPrefix。

答案 1 :(得分:1)

Greg V是正确的。您需要将teamString更改为teamsPrefix。这是因为在Spark v6.0中,Spark::referToTeamsAs()已更改为Spark::prefixTeamsAs()https://spark.laravel.com/docs/6.0/upgrade

您可以在Spark的源代码中看到新方法(ManageAppOptions.php第141-160行),并且teamStringreferToTeamsAs不再存在:

    /**
     * Get the string used to describe teams.
     *
     * @return string
     */
    public static function teamsPrefix()
    {
        return static::$teamsPrefix;
    }

    /**
     * Set the string used to describe teams.
     *
     * @param  string  $string
     * @return void
     */
    public static function prefixTeamsAs($string)
    {
        static::$teamsPrefix = $string;
    }