我对Laravel很新,当我遇到这个错误时,我正在阅读教程 . 这是我在'testController.php'中的代码 .
<?php
namespace app\Http\Controllers;
use app\Http\Controllers\Controller;
class testController extends \app\Http\Controllers\Controller {
public function getAbout()
{
return view('Learning.about') ;
}
public function getHome()
{
return view('Learning.index');
}
}
这是我的'routes.php' .
<?php
Route::get('test', [
'as' => 'test',
'uses' => 'testController@getHome',
]);
Route::get('about', [
'as' => 'about',
'uses' => 'testController@getAbout',
]);
我收到此错误:
未找到类'app \ Http \ Controllers \ Controller'
我该如何解决这个错误?
4 回答
让我们一步一步来看看 .
1.检查composer.json上的autoload指令
在项目根目录中打开
composer.json
文件 . 找到autoload
部分 . 应该看起来像这样:确保在
psr-4
选项下具有此配置:此配置告诉作曲家我们要使用psr-4约定自动加载
app
目录中的所有类,并将其放在App
名称空间下 .2.更新您的控制器
首先,您的控制器文件名应该是CamelCase样式 . 所以我们必须将其重命名为
TestController.php
. 确保它保存在app/Http/Controllers
目录下 .现在打开你的
TestController.php
文件,我们必须像这样大写命名空间和类名:请注意,我们也改变了这一行:
成:
由于我们已经导入了基类
Controller
类,因此我们不必指定完全限定名 . 我们使用use
关键字导入了Controller
类:保存
TestController.php
文件 .3.更新您的路线文件
现在我们必须更新
app\Http\routes.php
文件 . 我们只需要大写控制器名称:4更新自动装带器
现在最后要做的事情 . 打开终端/命令提示符 . 转到项目目录并运行以下命令:
此命令将更新自动加载器文件(Read more here) .
现在,如果您打开浏览器并点击
/test
路线,您应该会看到resources/views/Learning/index.blade
中的内容 .使用正确的名称:
根据我在Laravel项目中的经验,命名空间以命名空间中使用的
A
的A
开头,您应该尝试将代码更改为:还要检查控制器 -
App\Http\Controllers\Controller
是否位于代码中提到的相同名称空间中 .将其包含在Controller文件的顶部 . 这为我修好了 .