2016-12-14 36 views
1

我在我的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文件文件中設置:

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

現在,當我打在瀏覽器輸入以下網址:

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

我得到我的屏幕上出現以下錯誤:

enter image description here

爲什麼我得到一個控制器沒有找到錯誤,當我已經有一個控制器?

+0

您的'NoticeController'擴展了一個laravel找不到的'Controller',您必須將它包含在您的使用語句中。 –

+2

您是否嘗試過'namespace App \ Http \ Controllers;'? – piscator

回答

4

你正在使用錯誤的命名空間:

namespace App\Http\Controllers; 

而且,你錯過了這一點:

use App\Http\Controllers\Controller; 

您應該使用php artisan make:controller SomeController命令創建控制器,如果你想避免這樣的問題。

+0

後者是沒有必要的,因爲你已經在'App \ Http \ Controllers'命名空間 – Neat

+0

@Neat you're對,但它是由'php artisan make:controller'創建的Laravel控制器的標準行。事情是一些控制器將有不同的命名空間,例如'App \ Http \ Controllers \ Admin',所以在每個控制器中保留這一行是個好主意。 –

2

試圖將命名空間值改成這樣:

namespace App\Http\Controllers; 

,並添加以下行:

use App\Http\Controllers\Controller; 

希望它能幫助。

+0

後者是沒有必要的,因爲你已經在'App \ Http \ Controllers'命名空間:) – Neat

相關問題