'testController@getHo-6ren">
gpt4 book ai didi

php - 在 Laravel 5.1 中找不到 "Class ' app\Http\Controllers\Controller'

转载 作者:可可西里 更新时间:2023-11-01 00:40:37 25 4
gpt4 key购买 nike

我是 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',
]);

我收到这个错误:

Class 'app\Http\Controllers\Controller' not found

我该如何修复这个错误?

最佳答案

让我们一步一步来。

1。检查 composer.json 上的自动加载指令

打开项目根目录下的 composer.json 文件。找到 autoload 部分。它应该看起来像这样:

{
...
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
}

确保在 psr-4 选项下有此配置:

"App\\": "app/"

此配置告诉 Composer 我们要使用psr-4 自动加载app 目录中的所有类。约定并将其置于 App 命名空间下。

2。更新你的 Controller

首先,您的 Controller 文件名应该采用 CamelCase 样式。所以我们必须将它重命名为 TestController.php。确保它保存在 app/Http/Controllers 目录下。

现在打开你的 TestController.php 文件,我们必须像这样将命名空间和类名大写:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class TestController extends Controller {
public function getAbout()
{
return view('Learning.about') ;
}

public function getHome()
{
return view('Learning.index');
}
}

请注意,我们也将这一行:

class testController extends \app\Http\Controllers\Controller

进入:

class TestController extends Controller

因为我们已经导入了 Controller 基类,所以我们不必指定完全限定名称。我们使用 use 关键字导入了 Controller 类:

use App\Http\Controllers\Controller;

保存您的 TestController.php 文件。

3。更新你的路由文件

现在我们必须更新我们的 app\Http\routes.php 文件。我们只需要将 Controller 名称大写即可:

<?php

Route::get('test', ['uses' => 'TestController@getHome', 'as' => 'test']);

Route::get('about', ['uses' => 'TestController@getAbout', 'as' => 'about']);

4 更新自动加载器

现在要做的最后一件事。打开您的终端/命令提示符。转到您的项目目录并运行以下命令:

composer dump-autoload

此命令将更新自动加载器文件 ( Read more here )。

现在,如果您打开浏览器并点击 /test 路径,您应该会看到来自 resources/views/Learning/index.blade 的内容。

关于php - 在 Laravel 5.1 中找不到 "Class ' app\Http\Controllers\Controller',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40576315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com