当我想要获得我创建的服务时,我的控制器出现问题,当我在localhost时一切正常,但是当我将网站放入服务器时,我遇到了问题。
以下是在我的控制器中出错的行:
$myService = $this->get('Acme_test.service');
services.yml
:
services:
Acme_test.service:
class: Acme\testBundle\Services\Testservice
arguments: [%folder%, @service_container]
错误:
ClassNotFoundException: Attempted to load class "Testservice" from namespace "Acme\TestBundle\Services" in /home/www/acme/app/cache/dev/appDevDebugProjectContainer.php line 736. Do you need to "use" it from another namespace?
我试图清除缓存,仍然有同样的错误!!
答案 0 :(得分:2)
您需要将嵌套服务设置为services
文件中的services.yml
节点,如:
services:
acme_test.service:
class: Acme\TestBundle\Service\TestService
arguments: [%folder%, @service_container]
我认为最好用小写写服务名称。然后在控制器中获得服务,如:
$myService = $this->get('acme_test.service');
注意:我认为您在 camelCase中的TestBundle
和TestService
名称
注意2:通常服务目录名称为Service
,因此请检查您的命名空间,它必须是Acme\TestBundle\Service
,类名必须为TestService
并且文件Acme\TestBundle\Service\TestService.php
必须存在。
注3:手动清除缓存目录后,所有建议和修改完成。