如何在控制器中创建目录 - laravel

Posted

技术标签:

【中文标题】如何在控制器中创建目录 - laravel【英文标题】:how to make a directory in controller - 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 ***.com/questions/18850542/… 勾选这个你会得到你的解决方案 @Pardeep Pathania 我使用了dump-autoload,但不起作用 【参考方案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;

以上是关于如何在控制器中创建目录 - laravel的主要内容,如果未能解决你的问题,请参考以下文章

我们如何在 Laravel 8.1 中创建一个普通控制器(--plain 在新版本中不存在)[关闭]

如何使用 Artisan 命令 (PHP) 在 Laravel 5.2 中创建 RESTful 资源控制器

如何使用一个命令在 laravel 中创建所有三个文件(控制器、模型和数据库迁移文件)

如何在 Laravel 5.2 中创建多重身份验证

如何通过从vuejs组件获取数据在Laravel控制器中创建多个行

在 Laravel-8 项目中创建数据不起作用,如何解决?