Laravel 5 Class' App \ Http \ Controllers \ Category'未找到

时间:2015-07-16 12:26:19

标签: php laravel-5

跟随laravel的tuts教程的人们,因为我已经安装了Laravel 5,所以会抛出几个错误。

代码

public function getIndex() {
        return View::make('categories.index')
            ->with('categories', Category::all());
    }

此函数抛出两个错误

Class 'App\Http\Controllers\Category' not found
Class 'App\Http\Controllers\views' not found

嗯,我知道这是因为Laravel 5中的名称间距不同。我尝试添加第二个错误

use view在文件的开头,但它没有找到视图。任何人都可以让我知道这些文件所在的目录

谢谢

2 个答案:

答案 0 :(得分:1)

这些都不在您的控制器中。 View类是Illuminate的一部分,另一个很可能是你创建的类Model。

在php文件中使用新类时,必须包含它或use

你最有可能为你的分类做这件事的方式是“

use App\Category应解决这个问题。

您的观点只会稍微困难一些。如果您使用IDE,您可以在其中导入更容易的类,那么您不必记住命名空间/类名。但是,如果不这样做,您需要知道使用哪一个以及何时使用它。在这种情况下,您需要执行以下操作:

use View这应该解决这个问题。

因此,在声明上方和命名空间下方的控制器中,您必须使用使用调用

<?php namespace App\Http\Controllers

// I'm removing this because there is a way not to even have to use this...
// use View;
use App\Category;

class YourController extends Controller {
    ...
}

就像我在评论中提到的那样,有更好的方法。您可以使用辅助函数view()来返回视图,而不必按照您的方式执行视图。

你需要改变的是:

return View::make('categories.index')->with('categories', Category::all());

return view('categories.index', ['categories' => Category::all()]);
    or
return view('categories.index')->with('categories',Category::all())

消除弄乱课程的困惑。

答案 1 :(得分:1)

namespace声明

下方的文件顶部添加以下内容
use Illuminate\Support\Facades\View;
use App\Category;