2016-12-14 13 views
1

I持って自分のlaravelのアプリケーションで次のコントローラ:laravelにコントローラが見つかりませんでした。どうして?

<?php 

namespace Http\Controllers; 
use App\Http\Requests; 
use App\Http\Requests\PrepareNoticeRequest; 
use App\Provider; 
use Illuminate\Http\Request; 

class NoticesController extends Controller { 

    public function create() { 
     $providers = Provider::lists('name' , 'id'); 
     return view('notices.create' , compact('providers')); 
    } 

} 

そしてroutes.phpのファイルに設定されている次のルート:私は、ブラウザで次のURLを打ったときに今

Route::get('notices/create' , '[email protected]'); 

http://localhost:8080/laravelApp/public/notices/create 

私はスクリーンに次のエラーを取得:

enter image description here

コントローラーを既に持っているとコントローラーが見つかりません。

+0

'NoticeController'は、laravelが見つけることができない' Controller'を拡張します。あなたはuseステートメントにそれを含める必要があります。 –

+2

名前空間App \ Http \ Controllers;を試しましたか? – piscator

答えて

4

あなたは間違った名前空間を使用しています。

+0

' App \ Http \ Controllers'ネームスペースに既にあるため、後者は不要です。 – Neat

+0

@Neatしかし、これは 'php artisan make:controller'によって作られたLaravelコントローラの標準ラインです。これは、いくつかのコントローラは異なる名前空間を持つことになります。たとえば、 'App \ Http \ Controllers \ Admin'のように、すべてのコントローラにこの行を保存することをお勧めします。 –

2

これにあなたの名前空間の値を変更してください:

namespace App\Http\Controllers; 

、次の行を追加します

use App\Http\Controllers\Controller; 

はそれがお役に立てば幸いです。あなたはこの種の問題を回避したい場合は、コントローラを作成するためにphp artisan make:controller SomeControllerコマンドを使用する必要があります

use App\Http\Controllers\Controller; 

:また、あなたがこれを逃した

namespace App\Http\Controllers; 

+0

'App \ Http \ Controllers'ネームスペースに既に入っているため、後者は必要ありません:) – Neat

関連する問題