Macroable.php 第 52 行中的 BadMethodCallException:方法 shuffle 不存在。 - 运行 作曲家更新后
BadMethodCallException in Macroable.php line 52: Method shuffle does not exist. - after running composer update
我刚刚将我当前 Lumen 5.3 项目的依赖项(作曲家更新)更新到最新版本。
现在一切似乎都被打破了,开箱即用的所有 illuminate/*
依赖项都更新到 v5.3.23,这似乎与 v5.3.16 有很多不同。
我发现的第一个问题是路由组中定义的命名空间,不再需要了。
这段代码(过去工作得很好)
$app->group(['prefix' => '{storeId}', 'namespace' => 'App\Http\Controllers'], function () use ($app) {
....
});
它现在返回一个 ReflectionException 因为
Class App\Http\Controllers\App\Http\Controllers\MyController.php does not exists
.
好吧,这很容易修复,我只是删除了命名空间并且它起作用了
$app->group(['prefix' => '{storeId}'], function () use ($app) {
....
});
现在我收到一个对我来说毫无意义的非常奇怪的错误:
BadMethodCallException in Macroable.php line 52: Method shuffle does not exist.
.
每次我尝试使用 Eloquent 时都会抛出该异常。需要说明的是,我在我的代码库中找不到任何方法 shuffle
,并且 vendor
文件夹中的唯一引用与 fzaninotto/faker
和 illuminate/collection
.
相关
似乎解决这个问题的唯一方法是 "downgrade" 流明到 v5.2。*(我在我的 composer.json 中尝试使用 v5.3.1,但它仍然带来了所有的照明软件包 v5.3.23).
这些是更新的依赖项
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing symfony/polyfill-mbstring (v1.2.0)
- Installing symfony/polyfill-mbstring (v1.3.0)
Loading from cache
- Removing paragonie/random_compat (v2.0.3)
- Installing paragonie/random_compat (v2.0.4)
Downloading: 100%
- Removing illuminate/contracts (v5.3.16)
- Installing illuminate/contracts (v5.3.23)
Loading from cache
- Removing illuminate/filesystem (v5.3.16)
- Installing illuminate/filesystem (v5.3.23)
Downloading: 100%
- Removing illuminate/container (v5.3.16)
- Installing illuminate/container (v5.3.23)
Loading from cache
- Removing illuminate/events (v5.3.16)
- Installing illuminate/events (v5.3.23)
Loading from cache
- Removing illuminate/view (v5.3.16)
- Installing illuminate/view (v5.3.23)
Downloading: 100%
- Removing illuminate/validation (v5.3.16)
- Installing illuminate/validation (v5.3.23)
Downloading: 100%
- Removing illuminate/translation (v5.3.16)
- Installing illuminate/translation (v5.3.23)
Downloading: 100%
- Removing illuminate/console (v5.3.16)
- Installing illuminate/console (v5.3.23)
Downloading: 100%
- Removing illuminate/queue (v5.3.16)
- Installing illuminate/queue (v5.3.23)
Downloading: 100%
- Removing illuminate/pipeline (v5.3.16)
- Installing illuminate/pipeline (v5.3.23)
Loading from cache
- Removing illuminate/pagination (v5.3.16)
- Installing illuminate/pagination (v5.3.23)
Downloading: 100%
- Removing illuminate/session (v5.3.16)
- Installing illuminate/session (v5.3.23)
Downloading: 100%
- Removing illuminate/http (v5.3.16)
- Installing illuminate/http (v5.3.23)
Loading from cache
- Removing illuminate/hashing (v5.3.16)
- Installing illuminate/hashing (v5.3.23)
Loading from cache
- Removing illuminate/encryption (v5.3.16)
- Installing illuminate/encryption (v5.3.23)
Loading from cache
- Removing illuminate/database (v5.3.16)
- Installing illuminate/database (v5.3.23)
Downloading: 100%
- Removing illuminate/config (v5.3.16)
- Installing illuminate/config (v5.3.23)
Downloading: 100%
- Removing illuminate/cache (v5.3.16)
- Installing illuminate/cache (v5.3.23)
Downloading: 100%
- Removing illuminate/bus (v5.3.16)
- Installing illuminate/bus (v5.3.23)
Downloading: 100%
- Removing illuminate/broadcasting (v5.3.16)
- Installing illuminate/broadcasting (v5.3.23)
Downloading: 100%
- Removing illuminate/auth (v5.3.16)
- Installing illuminate/auth (v5.3.23)
Downloading: 100%
- Removing laravel/lumen-framework (v5.3.1)
- Installing laravel/lumen-framework (v5.3.2)
Downloading: 100%
- Removing aws/aws-sdk-php (3.19.23)
- Installing aws/aws-sdk-php (3.19.24)
Loading from cache
- Removing sebastian/recursion-context (1.0.2)
- Installing sebastian/recursion-context (1.0.3)
Loading from cache
- Removing phpunit/phpunit (5.6.2)
- Installing phpunit/phpunit (5.6.3)
Downloading: 100%
Writing lock file
Generating autoload files
我得到了同样的东西。我只是 运行 再次更新,它更新了 illuminate/support。这为我解决了问题。我认为他们推送作曲家包时遗漏了一些东西。
今天早上大约同一时间出现此错误。
- 删除路由中的命名空间。
- 第二次更新作曲家。
当我 运行 composer info 时,我发现 Illuminate/Support 没有更新,而其他 Illuminate 包更新了。
illuminate/session v5.3.23 The Illuminate Session package.
illuminate/support v5.3.16 The Illuminate Support package.
illuminate/translation v5.3.23 The Illuminate Translation package.
有趣的是,原来我做了另一个作曲家更新。但是并没有解决。所以,我所做的是回溯 Laravel 流明包(运行 作曲家更新),然后再次更新到最新版本。
我认为软件包更新过程出了点问题。
我刚刚将我当前 Lumen 5.3 项目的依赖项(作曲家更新)更新到最新版本。
现在一切似乎都被打破了,开箱即用的所有 illuminate/*
依赖项都更新到 v5.3.23,这似乎与 v5.3.16 有很多不同。
我发现的第一个问题是路由组中定义的命名空间,不再需要了。
这段代码(过去工作得很好)
$app->group(['prefix' => '{storeId}', 'namespace' => 'App\Http\Controllers'], function () use ($app) {
....
});
它现在返回一个 ReflectionException 因为
Class App\Http\Controllers\App\Http\Controllers\MyController.php does not exists
.
好吧,这很容易修复,我只是删除了命名空间并且它起作用了
$app->group(['prefix' => '{storeId}'], function () use ($app) {
....
});
现在我收到一个对我来说毫无意义的非常奇怪的错误:
BadMethodCallException in Macroable.php line 52: Method shuffle does not exist.
.
每次我尝试使用 Eloquent 时都会抛出该异常。需要说明的是,我在我的代码库中找不到任何方法 shuffle
,并且 vendor
文件夹中的唯一引用与 fzaninotto/faker
和 illuminate/collection
.
似乎解决这个问题的唯一方法是 "downgrade" 流明到 v5.2。*(我在我的 composer.json 中尝试使用 v5.3.1,但它仍然带来了所有的照明软件包 v5.3.23).
这些是更新的依赖项
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing symfony/polyfill-mbstring (v1.2.0)
- Installing symfony/polyfill-mbstring (v1.3.0)
Loading from cache
- Removing paragonie/random_compat (v2.0.3)
- Installing paragonie/random_compat (v2.0.4)
Downloading: 100%
- Removing illuminate/contracts (v5.3.16)
- Installing illuminate/contracts (v5.3.23)
Loading from cache
- Removing illuminate/filesystem (v5.3.16)
- Installing illuminate/filesystem (v5.3.23)
Downloading: 100%
- Removing illuminate/container (v5.3.16)
- Installing illuminate/container (v5.3.23)
Loading from cache
- Removing illuminate/events (v5.3.16)
- Installing illuminate/events (v5.3.23)
Loading from cache
- Removing illuminate/view (v5.3.16)
- Installing illuminate/view (v5.3.23)
Downloading: 100%
- Removing illuminate/validation (v5.3.16)
- Installing illuminate/validation (v5.3.23)
Downloading: 100%
- Removing illuminate/translation (v5.3.16)
- Installing illuminate/translation (v5.3.23)
Downloading: 100%
- Removing illuminate/console (v5.3.16)
- Installing illuminate/console (v5.3.23)
Downloading: 100%
- Removing illuminate/queue (v5.3.16)
- Installing illuminate/queue (v5.3.23)
Downloading: 100%
- Removing illuminate/pipeline (v5.3.16)
- Installing illuminate/pipeline (v5.3.23)
Loading from cache
- Removing illuminate/pagination (v5.3.16)
- Installing illuminate/pagination (v5.3.23)
Downloading: 100%
- Removing illuminate/session (v5.3.16)
- Installing illuminate/session (v5.3.23)
Downloading: 100%
- Removing illuminate/http (v5.3.16)
- Installing illuminate/http (v5.3.23)
Loading from cache
- Removing illuminate/hashing (v5.3.16)
- Installing illuminate/hashing (v5.3.23)
Loading from cache
- Removing illuminate/encryption (v5.3.16)
- Installing illuminate/encryption (v5.3.23)
Loading from cache
- Removing illuminate/database (v5.3.16)
- Installing illuminate/database (v5.3.23)
Downloading: 100%
- Removing illuminate/config (v5.3.16)
- Installing illuminate/config (v5.3.23)
Downloading: 100%
- Removing illuminate/cache (v5.3.16)
- Installing illuminate/cache (v5.3.23)
Downloading: 100%
- Removing illuminate/bus (v5.3.16)
- Installing illuminate/bus (v5.3.23)
Downloading: 100%
- Removing illuminate/broadcasting (v5.3.16)
- Installing illuminate/broadcasting (v5.3.23)
Downloading: 100%
- Removing illuminate/auth (v5.3.16)
- Installing illuminate/auth (v5.3.23)
Downloading: 100%
- Removing laravel/lumen-framework (v5.3.1)
- Installing laravel/lumen-framework (v5.3.2)
Downloading: 100%
- Removing aws/aws-sdk-php (3.19.23)
- Installing aws/aws-sdk-php (3.19.24)
Loading from cache
- Removing sebastian/recursion-context (1.0.2)
- Installing sebastian/recursion-context (1.0.3)
Loading from cache
- Removing phpunit/phpunit (5.6.2)
- Installing phpunit/phpunit (5.6.3)
Downloading: 100%
Writing lock file
Generating autoload files
我得到了同样的东西。我只是 运行 再次更新,它更新了 illuminate/support。这为我解决了问题。我认为他们推送作曲家包时遗漏了一些东西。
今天早上大约同一时间出现此错误。
- 删除路由中的命名空间。
- 第二次更新作曲家。
当我 运行 composer info 时,我发现 Illuminate/Support 没有更新,而其他 Illuminate 包更新了。
illuminate/session v5.3.23 The Illuminate Session package.
illuminate/support v5.3.16 The Illuminate Support package.
illuminate/translation v5.3.23 The Illuminate Translation package.
有趣的是,原来我做了另一个作曲家更新。但是并没有解决。所以,我所做的是回溯 Laravel 流明包(运行 作曲家更新),然后再次更新到最新版本。
我认为软件包更新过程出了点问题。