2015-11-14 119 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

我的问题是不同的类名称一个比一个扩展控制器类,它们的名称应该相同