代码
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
在文件的开头,但它没有找到视图。任何人都可以让我知道这些文件所在的目录
谢谢
答案 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;