我有一个应用程序,我已将所有控制器/模型/ repo /服务逻辑移到本机Laravel应用程序文件夹之外。我在根目录中有Acme
个文件夹,我已将其添加到作曲家:
"psr-4": {
"App\\": "app/",
"Acme\\": "acme/"
}
AccountController
的命名空间如下:
<?php namespace Acme\Account\Controller;
我遇到的问题是:
urlContainer['userAjax'] = "{!! RoutingService::actionAjax('Account\Controller\AccountController@getUserAjax') !!}";
我收到错误消息:
Action \Acme\Account\Controller\AccountController@getUserAjax not defined
控制器存在,方法存在且路由存在。我似乎无法看到导致问题的原因是什么?
答案 0 :(得分:0)
我认为问题是文件的位置。
您的配置说文件夹acme /中的每个类都在Acme\
命名空间中。您的控制器的全名是Acme\Account\Controller\AccountController
。根据PSR-4,位置应为:
acme/Account/Controller/AccountController.php
如果不是这种情况,您可以按如下方式更改自动装带器设置:
"Acme\\Account\\": "acme/"
或移动您的文件。
编辑:另一种可能性是控制器中的namespace
包含拼写错误。