2016-01-29 74 views
1

我试图从5.1更新laravel到5.2。我跟着指示为根据update doc但运行作曲家UDPATE当我得到这个错误:laravel从5.1更新到5.2作曲者更新错误

Error Output: PHP Fatal error: Call to undefined method Illuminate\Foundation\Application::bindShared() in /my_app/vendor/illuminate/html/HtmlSe rviceProvider.php on line 36

,我抬头一看这个问题,看到有人在更新到5.1版本,锯时都拿到这个问题bindShared方法已被替换为singleton(),但我不想混淆供应商文件。 这里是我的配置/ app.php提供商和别名数组:

'providers' => [ 

    /* 
    * Laravel Framework Service Providers... 
    */ 
    Illuminate\Auth\AuthServiceProvider::class, 
    Illuminate\Broadcasting\BroadcastServiceProvider::class, 
    Illuminate\Bus\BusServiceProvider::class, 
    Illuminate\Cache\CacheServiceProvider::class, 
    Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, 
    Illuminate\Cookie\CookieServiceProvider::class, 
    Illuminate\Database\DatabaseServiceProvider::class, 
    Illuminate\Encryption\EncryptionServiceProvider::class, 
    Illuminate\Filesystem\FilesystemServiceProvider::class, 
    Illuminate\Foundation\Providers\FoundationServiceProvider::class, 
    Illuminate\Hashing\HashServiceProvider::class, 
    Illuminate\Mail\MailServiceProvider::class, 
    Illuminate\Pagination\PaginationServiceProvider::class, 
    Illuminate\Pipeline\PipelineServiceProvider::class, 
    Illuminate\Queue\QueueServiceProvider::class, 
    Illuminate\Redis\RedisServiceProvider::class, 
    Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, 
    Illuminate\Session\SessionServiceProvider::class, 
    Illuminate\Translation\TranslationServiceProvider::class, 
    Illuminate\Validation\ValidationServiceProvider::class, 
    Illuminate\View\ViewServiceProvider::class, 
    Illuminate\Html\HtmlServiceProvider::class, 

    /* 
    * Application Service Providers... 
    */ 
    App\Providers\AppServiceProvider::class, 
    App\Providers\EventServiceProvider::class, 
    App\Providers\RouteServiceProvider::class, 
    App\Providers\ViewComposerServiceProvider::class, 
    Laracasts\Flash\FlashServiceProvider::class, 
    Baum\Providers\BaumServiceProvider::class 

], 

/* 
|-------------------------------------------------------------------------- 
| Class Aliases 
|-------------------------------------------------------------------------- 
| 
| This array of class aliases will be registered when this application 
| is started. However, feel free to register as many as you wish as 
| the aliases are "lazy" loaded so they don't hinder performance. 
| 
*/ 

'aliases' => [ 

    'App'  => Illuminate\Support\Facades\App::class, 
    'Artisan' => Illuminate\Support\Facades\Artisan::class, 
    'Auth'  => Illuminate\Support\Facades\Auth::class, 
    'Blade'  => Illuminate\Support\Facades\Blade::class, 
    'Bus'  => Illuminate\Support\Facades\Bus::class, 
    'Cache'  => Illuminate\Support\Facades\Cache::class, 
    'Config' => Illuminate\Support\Facades\Config::class, 
    'Cookie' => Illuminate\Support\Facades\Cookie::class, 
    'Crypt'  => Illuminate\Support\Facades\Crypt::class, 
    'DB'  => Illuminate\Support\Facades\DB::class, 
    'Eloquent' => Illuminate\Database\Eloquent\Model::class, 
    'Event'  => Illuminate\Support\Facades\Event::class, 
    'File'  => Illuminate\Support\Facades\File::class, 
    'Hash'  => Illuminate\Support\Facades\Hash::class, 
    'Input'  => Illuminate\Support\Facades\Input::class, 
    'Inspiring' => Illuminate\Foundation\Inspiring::class, 
    'Lang'  => Illuminate\Support\Facades\Lang::class, 
    'Log'  => Illuminate\Support\Facades\Log::class, 
    'Mail'  => Illuminate\Support\Facades\Mail::class, 
    'Password' => Illuminate\Support\Facades\Password::class, 
    'Queue'  => Illuminate\Support\Facades\Queue::class, 
    'Redirect' => Illuminate\Support\Facades\Redirect::class, 
    'Redis'  => Illuminate\Support\Facades\Redis::class, 
    'Request' => Illuminate\Support\Facades\Request::class, 
    'Response' => Illuminate\Support\Facades\Response::class, 
    'Route'  => Illuminate\Support\Facades\Route::class, 
    'Schema' => Illuminate\Support\Facades\Schema::class, 
    'Session' => Illuminate\Support\Facades\Session::class, 
    'Storage' => Illuminate\Support\Facades\Storage::class, 
    'URL'  => Illuminate\Support\Facades\URL::class, 
    'Validator' => Illuminate\Support\Facades\Validator::class, 
    'View'  => Illuminate\Support\Facades\View::class, 
'Form'  => Illuminate\Html\FormFacade::class, 
'Html'  => Illuminate\Html\HtmlFacade::class, 
'Carbon' => 'Carbon\Carbon', 
'Flash'  => Laracasts\Flash\Flash::class, 

], 

这里是我composer.json:

{ 
"name": "laravel/laravel", 
"description": "The Laravel Framework.", 
"keywords": ["framework", "laravel"], 
"license": "MIT", 
"type": "project", 
"repositories": [{ 
    "type": "vcs", 
    "url": "https://github.com/nWidart/Elasticquent" 
    }], 
"require": { 
    "php": ">=5.5.9", 
    "laravel/framework": "5.2.*", 
    "doctrine/dbal": "^[email protected]", 
    "illuminate/html": "^[email protected]", 
    "laracasts/flash": "dev-master", 
    "fairholm/elasticquent": "dev-feature/laravel-5", 
    "baum/baum": "~1.1" 
}, 
"require-dev": { 
    "fzaninotto/faker": "~1.4", 
    "mockery/mockery": "0.9.*", 
    "phpunit/phpunit": "~4.0", 
    "phpspec/phpspec": "~2.1", 
    "symfony/dom-crawler": "~3.0", 
    "symfony/css-selector": "~3.0" 

}, 
"autoload": { 
    "classmap": [ 
     "database" 
    ], 
    "psr-4": { 
     "App\\": "app/" 
    } 
}, 
"autoload-dev": { 
    "classmap": [ 
     "tests/TestCase.php" 
    ] 
}, 
"scripts": { 
    "post-install-cmd": [ 
     "php artisan clear-compiled", 
     "php artisan optimize" 
    ], 
    "post-update-cmd": [ 
     "php artisan clear-compiled", 
     "php artisan optimize" 
    ], 
    "post-root-package-install": [ 
     "php -r \"copy('.env.example', '.env');\"" 
    ], 
    "post-create-project-cmd": [ 
     "php artisan key:generate" 
    ] 
}, 
"config": { 
    "preferred-install": "dist" 
}, 
"minimum-stability": "dev", 
"prefer-stable": true 
} 

任何想法,我应该做些什么来解决这个问题?我从一个5.1版的laravel安装开始。

回答

2

"illuminate/html"组件不再受Laravel支持,并且与5.2版本不兼容。

您可以laravelcollective/html

取代它,你必须:

  • 去除"illuminate/html": "^[email protected]"的参考,从composer.json

  • 添加"laravelcollective/html": "5.1.*"(或你想要的版本)

  • 运行composer update更新d ependecies(这将删除你的"illuminate/html"组件和安装"laravelcollective/html"组件

现在你有来取代你的HTML服务提供商:

'providers' => [ 
    Collective\Html\HtmlServiceProvider::class, 
    ], 

和外立面:

'aliases' => [ 
     'Form' => Collective\Html\FormFacade::class, 
     'Html' => Collective\Html\HtmlFacade::class, 
    ], 
+0

当我删除illuminate/html引用并添加laravelcollective我参考我得到错误:'您的需求无法解析为可安装的一组软件包.'然后'Prob lem 1 - 结论:在控制台输出中删除laravel/framework v5.2.12'和更高版本laravelcollective/html 5.1.x-dev需要照明/路由5.1。* - >通过illuminate/routing可以满足[5.1.x-dev, v5.1.1,v5.1' – user3494047

+0

尝试''laravelcollective/html“:”5.2。*“' – Moppo

+0

现在laravelcollective下载100%,但现在我得到了'PHP致命错误:Class'Illuminate \ Html \ HtmlServiceProvider'找不到/ my_app/vendor/laravel/framework/src /照亮648行的Foundation/Application.php。 也许这是一个不同的问题现在x( – user3494047