我得到的错误是控制器不存在,即使我知道它,这是代码。
Route.php
Route::get('mdpay/template', array("uses" => "templateController@index"));
templateController.blade.php
class templateController extends BaseController {
public function index()
{
echo "made it";
}
}
为什么我会收到此错误:类TemplateController不存在
=================更新:==================
好的,所以我创建了正确的路线,重命名了我的文件,并更正了班级名称,我仍然想出了这个错误。
文件名:
templateController.php
// File Name: TemplateController.php
class TemplateController extends BaseController {
public function index()
{
// app/views/myView.blade.php
echo "hello";
}
}
我的路线是:
Route::get('mdpay/template', array("uses" => "TemplateController@index"));
仍然接收控制器不存在错误。我的所有其他控制器(其他3个)都在工作,除了这个。
答案 0 :(得分:5)
如果您使用的是标准编辑器类图自动加载器,则每次创建新文件时都需要composer dumpautoload
。
所以用Laravel给出的标准作曲家设置来创建一个新的控制器:
app/controllers
TemplateController.php
中创建新文件
composer dumpautoload
正如之前的用户所说,只有视图文件应以.blade.php
结尾。
答案 1 :(得分:4)
如果您使用的是 Laravel 8,请将此行添加到您的 RouteServiceProvider.php(您可以使用 CTRL + P 进行搜索):
protected $namespace = 'App\Http\Controllers';
这为我解决了这个问题。
答案 2 :(得分:2)
应该是:
// File Name: TemplateController.php
class TemplateController extends BaseController {
public function index()
{
// return "made it"; // or
// app/views/myView.blade.php
return View::make('myView');
}
}
路线:
Route::get('mdpay/template', array("uses" => "TemplateController@index"));
在blade
中使用Blade view
,即myView.blade.php
基本上存储在app/views/
文件夹中。详细了解Laravel
网站上的blate template。
答案 3 :(得分:0)
控制器位于app/controllers
目录中,除非您拥有自己的命名空间结构,否则应该保留在那里。
您获得Class TemplateController does not exist
的原因是因为它不是,首先,您的类名为templateController
,其次,它存在为templateController.blade.php
,不会被加载就这样。
刀片文件适用于视图,只有app/views
或自定义视图目录中的视图应以.blade.php
结尾。
创建文件app/controllers/TemplateController.php
并向其添加以下代码。
class TemplateController extends BaseController {
public function index()
{
echo "made it";
}
}
现在在命令行上运行命令composer dumpautoload
并将路由声明更改为:
Route::get('mdpay/template', array('uses' => 'TemplateController@index"));
现在它应该全部工作。