【问题标题】:Class 'App\Http\Controllers\Controller' not found - Laravel 5.2找不到类“App\Http\Controllers\Controller” - Laravel 5.2
【发布时间】:2016-05-09 03:38:11
【问题描述】:

我是新来的,但我已经在这里检查了有关我的问题的所有解决方案,但仍然没有解决。

我想在 Laravel 5.2 中使用教程创建简单的应用程序,但我无法让我的控制器工作。

我将我的应用命名为“测试”,这是一个代码:

PagesController.php:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class PagesController extends Controller
{
    public function getAbout(){
         return view('about');   
    }
}

routes.php:

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

和Controller.php(默认):

<?php

namespace test\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

你觉得这里有什么问题吗? 我确定所有文件都在正确的文件夹中。

【问题讨论】:

  • 您在controller.php 中看到那个命名空间了吗?测试\http\....
  • 是的,我看到了,但这只是默认设置...如果我将其更改为 test\app\http\...
  • 大声笑你应该用测试替换应用程序。有时您需要在重命名应用或创建新类后执行 composer dump-autoload 命令。
  • 它不是 test\app,app 是您创建第一个应用程序时给出的通用名称。做我发布的,我应该修复你的错误。
  • 我把它改成了 test\http\... 但还是一样的错误。

标签: php laravel-5 laravel-routing laravel-5.2


【解决方案1】:

如果 App/Http/Controllers/ 文件夹没有 Controller.php 文件,也会发生错误。

确保文件存在。

【讨论】:

  • 感谢为我节省了一些时间 - 在包开发过程中,我将所有控制器复制到了新的包目的地(包括默认的 Controller.php 文件)。恢复后一切正常
【解决方案2】:

为了使一切正确,运行这个。

php artisan app:name YourApplicationName 

它会将 app 的所有内容更改为您的应用程序名称,因此您无需在任何地方手动编写测试

【讨论】:

  • 它改变了所有的命名空间,但仍然有同样的错误
【解决方案3】:

请更正页面控制器中的命名空间

<?php


namespace test\Http\Controllers;

use test\Http\Controllers\Controller;

class PagesController extends Controller
{
    public function getAbout(){
         return view('about');   
    }
}

更新:

在控制器中更改命名空间后,请转储-自动加载您的作曲家:

作曲家转储自动加载

【讨论】:

    【解决方案4】:

    我的控制器现在看起来像这样:

    <?php
    
    namespace test\Http\Controllers;
    
    use test\Http\Controllers\Controller;
    
    class PagesController extends Controller
    {
        public function getAbout(){
         return view('about');   
        }
    }
    

    错误依旧存在

    更新:

    好的,我创建了一个新项目,它终于可以工作了。我认为所有答案都会对类似问题有所帮助:)

    感谢您的帮助!

    【讨论】:

      【解决方案5】:

      在我的例子中,我有两个命名空间,一个用于控制器,一个用于 controller.php 中的模型

      namespace App\Http\Controllers;
      
      namespace App\Http\Models;
      

      第二个干扰了第一个

      我删除了第二个,瞧……代码工作了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-13
        • 2018-03-16
        • 2021-03-29
        • 2017-03-27
        • 2016-03-28
        • 2016-07-09
        • 2018-01-03
        • 1970-01-01
        相关资源
        最近更新 更多