Laravel 4中的app结构和类不存在

时间:2013-09-10 15:02:47

标签: php laravel laravel-4

我的应用程序结构如下

注意:“MyCMS”是laravel根目录

的“app”目录中的文件夹

http://paste.laravel.com/POt

问题在于每当我尝试访问路线“admin / users”

我收到以下错误

Class \MyCMS\Admin\UserController does not exist 

问题可能存在的任何想法?

3 个答案:

答案 0 :(得分:1)

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

还有一个注意事项,我认为你不能在你的app目录中调用$this->package('MyCMS/Admin');。如果你看一下laravel的source code for package方法,它实际上是猜测你的“包”的路径,然后向上两级获取资源。这是一个非常具体的文件结构。

答案 1 :(得分:1)

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

然后使用composer du或composer dump-autoload

答案 2 :(得分:0)

您的问题的原因很简单。包不会进入Laravel的app目录。

如果要创建包,请使用以下命令执行此操作:

php artisan workbench vendor/package --resources

然后,这将在Laravel安装中创建一个workbench文件夹,其中预定义的目录结构将为您新创建的包准备就绪。

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

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

请参阅Laravel文档中的this section,了解如何正确创建包。