2015-11-14 149 views
1

所以我是laravel的新手,只是嘗試了一些代碼來清除基礎知識,但是在創建新的控制器來處理路由之後。它引發了一個致命的異常,未找到!在laravel中找不到類控制器5

(該Controller.php這樣在同一目錄下存在)

的Controller.php這樣的代碼是默認的一個

​​

這是我PagesController.php代碼

<?php 

class PagesController extends Controller 
{ 
    public function home() 
    { 
     $name = 'Yeah!'; 
     return View::make('welcome')->with('name',$name); 
    } 
} 

這是route.php代碼

<?php 

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

welcome.blade.php代碼是默認的代碼,除了它顯示變量$ name而不是laravel 5. 我得到什麼錯誤?

+0

確保你的控制器也是命名空間的 – Zarathuztra

回答

5

當您參考extends Controller這樣的類時,PHP將在當前命名空間中搜索該類。

在這種情況下,這是一個全局命名空間。但是Controller類明顯不存在於全局名稱空間中,而是存在於App\Http\Controllers中。

你需要在PagesController.php頂部指定命名空間:

namespace App\Http\Controllers; 
+0

我試過,控制器工作,但現在作爲命名空間是控制器目錄,我得到一個錯誤視圖找不到。任何其他選項 – gospelslide

+0

@gospelslide你可以添加'使用視圖;'到控制器頂部或使用別名'view'像這樣:'返回視圖('歡迎') - >與('名字',$ name);' –

+0

是的,我做到了,現在完美運行,謝謝! – gospelslide

0

您將要指定命名空間到你Controller類:

​​

否則Controller在默認的根命名空間\,它不存在擡頭。

-1

我的問題是不同的類名稱一個比一個擴展控制器類,它們的名稱應該相同