【问题标题】:how to make a directory in controller - laravel如何在控制器中创建目录 - laravel
【发布时间】:2016-11-09 15:45:45
【问题描述】:

我在Controller 目录中创建了一个Panel 目录。

AdminController.php 内部有一个login 函数

class AdminController extends Controller
{
    //


    public function login()
    {
        return 'test';
    }
}

routes.php我写了这样一条路线:

Route::get('/cp/login','Panel\AdminController@login');

但是当我在 url 下运行时,我收到了一些错误,表明该控制器不存在:

http://localhost:8000/cp/login

Route.php 第 280 行中的反射异常:类 App\Http\Controllers\Panel\AdminController 不存在

【问题讨论】:

  • 可能是 laravel 没有更新 autoloder。你跑composer dump-autoload了吗?
  • 尝试将控制器命名空间设置为 App\Http\Controllers\Panel
  • 尝试运行 composer dump-autoload
  • stackoverflow.com/questions/18850542/… 勾选这个你会得到你的解决方案
  • @Pardeep Pathania 我使用了dump-autoload,但不起作用

标签: php laravel


【解决方案1】:

您应该将命名空间添加到控制器

将命名空间更改为

命名空间 App\Http\Controllers\Panel;

Laravel 将根据您的名称间距而不是您的目录结构来解析控制器。

【讨论】:

    【解决方案2】:

    尝试将适当的命名空间添加到 AdminController 文件的顶部,您还需要为其扩展的 Controller 类指定命名空间,因为它们位于不同的子命名空间下。

    您可以在此处http://www.php-fig.org/psr/psr-4/ 阅读有关 PSR-4 自动加载的更多信息。

    根据您应该阅读的目录结构

    <?php
    
        namespace App\Http\Controllers\Panel
    
        use App\Http\Controllers\Controller;
    
        class AdminController extends Controller {
    
            //..
    
        }
    

    【讨论】:

    • 你的答案是对的,但你必须添加这一行:use App\Http\Controllers\Controller;
    猜你喜欢
    • 2015-05-10
    • 2020-08-01
    • 1970-01-01
    • 2018-07-22
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多