Macroable.php第52行中的BadMethodCallException:方法shuffle不存在。 - 运行作曲家更新后

时间:2016-11-14 17:41:49

标签: php laravel collections eloquent lumen

我刚刚将我当前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时都会抛出异常。为了清楚起见,我在代码库中找不到任何方法shufflevendor文件夹中的唯一引用与fzaninotto/fakerilluminate/collection相关。

似乎解决问题的唯一方法是降级"降级" lumen to 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

2 个答案:

答案 0 :(得分:1)

我得到了同样的东西。我刚刚再次运行更新,它更新了照明/支持。这解决了我的问题。我认为当他们推送作曲家包时会有些错过。

答案 1 :(得分:1)

今天早上同一时间出现了这个错误。

  1. 删除路由中的命名空间。
  2. 第二次更新作曲家。
  3. 当我运行作曲家信息时,我发现Illuminate / Support在其余的Illuminate软件包中没有更新。

      

    照亮/会话v5.3.23 Illuminate Session包。

         

    照亮/支持v5.3.16照明支持包。

         

    照亮/翻译v5.3.23照亮翻译包。

    有趣的是,最初,我做了另一个作曲家更新。但它没有解决。所以,我做了什么,是我回溯了Laravel流明包(运行作曲家更新),然后再次更新到最新。

    我认为,在软件包更新过程中,有些事情搞砸了。