我的应用程序结构如下
注意:“MyCMS”是laravel根目录
的“app”目录中的文件夹问题在于每当我尝试访问路线“admin / users”
时我收到以下错误
Class \MyCMS\Admin\UserController does not exist
问题可能存在的任何想法?
答案 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,了解如何正确创建包。