0

我的应用程序结构如下

注意:“MyCMS”是laravel根目录下“app”目录下的一个文件夹

http://paste.laravel.com/POt

问题是每当我尝试访问路线“管理员/用户”

我收到以下错误

Class \MyCMS\Admin\UserController does not exist 

问题可能出在哪里?

4

3 回答 3

1

有时我们会遇到这个问题,那么我们应该在 UserController.php 中使用<?php而不是<?

然后使用 composer du 或 composer dump-autoload

于 2013-11-18T10:38:46.457 回答
1

在你的,它不UserController.php应该是 namespace MyCMS\Admin\Controllers;namespace MyCMS\Admin;

附带说明一下,我认为您不能只$this->package('MyCMS/Admin');在应用程序目录中调用它。如果您查看 laravel 的package 方法的源代码,它实际上是在猜测您的“包”的路径并向上两级获取资源。这是一个非常具体的文件结构。

于 2013-09-14T05:14:04.313 回答
0

你的问题的原因很简单。包不在 Laravel 的 app 目录中。

如果要创建包,请使用以下命令:

php artisan workbench vendor/package --resources

这将workbench在你的 Laravel 安装中创建一个文件夹,其中一个预定义的目录结构将为你新创建的包做好准备。

/src
    /Vendor
        /Package
            PackageServiceProvider.php
    /config
    /lang
    /migrations
    /views
/tests
/public

然后,您可以通过将提供程序添加到文件中的提供程序数组来注册提供程序app/config/app.php。在composer dump-autoload你的包应该准备好在你的应用程序中使用之后。

请参阅Laravel 文档中的此部分,了解如何正确创建包。

于 2013-09-10T15:15:46.080 回答