2016-04-27 243 views
0

我在使用Homestead開發我的開發機器。我承諾我的composer.lockcomposer.json。在此分支中,我將HashidLaravelDebugBar添加到作曲家用於開發目的。在開發機器上一切正常。PHP致命錯誤:未找到類'Vinkla Hashids HashidsServiceProvider'

有一次,我從師傅拉着我的生產機器,跑composer update,我也得到了以下錯誤:

enter image description here

當我php artisan migratecomposer update型,我得到以下錯誤:

PHP Fatal error: Class 'Vinkla\Hashids\HashidsServiceProvider' not found in /var/www/schedulizer/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146 


    [Symfony\Component\Debug\Exception\FatalErrorException] 
    Class 'Vinkla\Hashids\HashidsServiceProvider' not found 

我試過composer clear-compiled,composer dump-autoload手動嘗試需要Hashid包,並刪除0123行中的違規行和運行作曲家更新

我檢查了服務供應商,它在我config/app.php ..

+0

項目文件夾中的Vinkla \ Hashids \ HashidsServiceProvider類是否在某處? 'grep -R「Vinkla \ Hashids \ HashidsServiceProvider」。/' – Samsquanch

+0

grep似乎沒有返回結果,但是我可以在'config/app.php'中找到它。 – theGreenCabbage

回答

1

,而不是運行composer update的,運行的生產機器,而不是在composer install;這將繞過Laravel運行的更新前鉤子。

Source

如果他們開發的要求,那麼你可以有條件它們將它們添加到您的AppServiceProvider像這樣添加到您的服務供應商名單:

// AppServiceProvider.php 

public function register() 
{ 
    /* ... */ 

    if ($this->app->environment('production')) { 
     // $this->app->register(''); 
    } else { 
     $this->app->register('Vinkla\Hashids\HashidsServiceProvider'); 
    } 
} 

Source

+0

我的天啊,我認爲這就是它。 – theGreenCabbage

+0

耶穌基督,我錯誤'作曲家安裝''作曲家升級'。學過的知識。非常感謝。 – theGreenCabbage

+0

Gotcha;真高興你做到了! –

0

首先,檢查是否存在Vinkla\Hashids\HashidsServiceProvider。另外,請仔細檢查所有字母(最好從文檔中複製粘貼名稱空間)。然後嘗試運行此命令:

composer dumpauto

如果它不會幫助,運行此命令:

composer dumpauto -o

+0

您好。我嘗試了所有你提到的事情,並確保提供者存在,但沒有運氣。 – theGreenCabbage

+0

嘗試使用-o再次刪除root和run命令中的composer.lock。 –

0

我試過php artisan config:clear然後我跑composer updatecomposer install但我得到了相同的錯誤信息。

在我的情況下,問題出在bootstrap/cache/config.php 所以我手動刪除了文件並完成了任務。

相關問題