2016-11-03 10 views
4

最近、laravel 4.2プロジェクトを5.0に移行しました。これまでのところ私はすべての必要なステップを完了しましたが、私は間違いを続けています。名前は、アップグレードガイドにlaravelによって提供されるように名前が既に使用されているため、クラスControllerを宣言できません

私のコントローラが変更される既に使用されているので、

は、クラスのコントローラを宣言することはできません。

<?php 

use Illuminate\Foundation\Bus\DispatchesCommands; 
use Illuminate\Routing\Controller as BaseController; 
use Illuminate\Foundation\Validation\ValidatesRequests; 

abstract class Controller extends BaseController { 

    use DispatchesCommands, ValidatesRequests; 

} 

また、私はcomposer.jsonのclassmapディレクティブに追加しました。

"autoload": { 
    "classmap": [ 
     "database", 
     "app/Http/Controllers" 
    ], 
    "psr-4": { 
     "App\\": "app/" 
    } 
}, 

これまでのところ解決策を見つけることができなかったので、何をすればいいのか分かりましたら、事前に感謝します。

+0

この名前空間がないことに注意してください。 –

答えて

2

クラスマップから"app/Http/Controllers"を削除してください。

useブロックの上にnamespace App\Http\Controllers;を追加してください。

その後、私はあなたが名前空間を追加する必要が確信しているcomposer dump-auto

+0

これは、私のroutes.phpにコントローラの全体のパスを書かなければならないのですか? – Reshad

+0

あなたの 'app/Providers/RouteServiceProvider.php'には' routes.php'が含まれていて、ルートグループの名前空間は –

+0

'$ router-> group(['namespace' => 'App \ Http \ Controllers']のように定義します。 ($ router){ app_path( 'Http/routes.php'); }); ' –

1

を実行します。デフォルトでは

を名前空間

、Laravel 4つのアプリケーションは、アプリケーションのコード内で名前空間を利用しませんでした。たとえば、すべてのEloquentモデルとコントローラは、単に「グローバル」ネームスペースに存在していました。より迅速な移行を実現するには、これらのクラスをLaravel 5のグローバル名前空間にそのまま置いてください。

関連する問題