Php Symfony2:将控制器作为服务进行路由不工作
我尝试在我的Symfony 2.7项目中使用控制器作为服务 这是我尝试服务之前的routing.yml:Php Symfony2:将控制器作为服务进行路由不工作,php,symfony,Php,Symfony,我尝试在我的Symfony 2.7项目中使用控制器作为服务 这是我尝试服务之前的routing.yml: affiliate_api_get_adblock: path: /api/1.0/admin/affiliate/adblock defaults: { _controller: AffiliateBundle:AffiliateApi:adblock } 它工作得很好。它将路径路由到AffiliateAppController中的AffiliateAppCont
affiliate_api_get_adblock:
path: /api/1.0/admin/affiliate/adblock
defaults: { _controller: AffiliateBundle:AffiliateApi:adblock }
它工作得很好。它将路径路由到AffiliateAppController中的AffiliateAppController,并执行adblockAction方法
然后我创建了以下服务:
services:
company.affiliate_api_controller:
class: CompanyName\AffiliateBundle\Controller\AffiliateApiController
arguments:
- @doctrine.orm.entity_manager
当我想实例化每个DI容器的控制器时,它可以工作:$c=$this->get('company.affiliate\u api\u controller')代码>
但是,当我尝试使用routing.yml中的服务名称而不是Symfony文档中描述的类名时,抛出的错误如下:
affiliate_api_get_adblock:
path: /api/1.0/admin/affiliate/adblock
defaults: { _controller: company.affiliate_api_controller:adblock }
请求此路由时发生的是500错误,并显示以下消息:
控制器“company.affiliate_api_Controller:adblock”表示URI
“/api/1.0/admin/affiliate/adblock”不可调用。500内部
服务器错误-InvalidArgumentException
这里出了什么问题?尝试用后缀Action
在routing.yml
中声明默认值:
affiliate_api_get_adblock:
path: /api/1.0/admin/affiliate/adblock
defaults: { _controller: company.affiliate_api_controller:adblockAction }