类App / Http / Controllers / View Not Found错误

时间:2015-03-08 20:39:39

标签: laravel-5

我是laravel 5的新手,目前被这个错误所困扰:

FatalErrorException in TicketController.php line 18: Class 'App\Http\Controllers\View' not found

奇怪的是视图确实存在,我查看路由是否确实路由到正确的控制器,它是,当我尝试这样做时错误弹出:

return View::make('tickets.bus.index');

我要么在某处犯错,要么实施与laravel 4不同

5 个答案:

答案 0 :(得分:81)

问题不是实际视图,而是 View。您会看到,当您引用类似View::make('tickets.bus.index') PHP的类时,您会在当前命名空间中搜索该类。

在这种情况下App\Http\Controllers。但是,View类显然不存在于控制器的命名空间中,而是存在于Laravel框架命名空间中。它还有一个别名,它位于全局命名空间中。

您可以通过添加反斜杠来引用根命名空间中的别名:

return \View::make('tickets.bus.index');

或者在顶部添加一个import语句:

use View;

答案 1 :(得分:18)

在Laravel 5.1中,正确的use代码为:

use Illuminate\Support\Facades\View;

答案 2 :(得分:9)

存在一个辅助函数view(),它位于全局命名空间中,可用于简化语法:

return view('tickets.bus.index');

使用此方法,不必包含use View;或包含根名称空间,例如\View

lukasgeiter解释的概念对理解Laravel至关重要,即使你选择使用帮助函数。

答案 3 :(得分:2)

对我来说这是命名空间问题。我使用php artisan来创建控制器,但似乎php artisan使用了不同的命名空间(可能我必须在composer.json中更改某些内容以修复它但我在laravel中是全新的)

Whoops, looks like something went wrong. FatalErrorException in PagesController.php line 11: Class 'App\Http\Controllers\Controller' not found 很好,我使用phpStorm自动插入适当的命名空间

确保正确检出命名空间。这就是我用php artisan

创建控制器的方法

    namespace App\Http\Controllers;
    use App\Http\Requests;
    use App\Http\Controllers\Controller; //php artisan inserted.
    class PagesController extends Controller
    {
        public function index(){
            return view('index');
        }
        public function about(){
            return view('pages.about');
        }
    }

这就是我在手动编写扩展控制器

后插入phpstorm的方法

    namespace App\Http\Controllers;
    use App\Http\Requests;
    use Illuminate\Routing\Controller; //I manually wrote extends Controller and selected this namespace 

    class PagesController extends Controller
    {
        public function index(){

     ...

答案 4 :(得分:0)

存在一个辅助函数view(),它位于全局命名空间中,可用于简化语法:

返回视图('tickets.bus.index');

With this method, it is unnecessary to include use View; or include the root namespace, e.g., \View.

lukasgeiter解释的概念对理解Laravel至关重要,即使你选择使用帮助函数。