问题描述
父类:
abstract class AbstractObjectRestController extends FOSRestController {
/**
*
* @param ParamFetcher $params
* @return \FOS\RestBundle\View\View
*/
public function cgetAction(ParamFetcher $params)
{
// Get DB data and return View
}
}
子类:
/**
* Class RoleRestController
* @package Abstrat\UsersBundle\Controller
* @REST\RouteResource("Roles")
*/
class CertificateRestController extends AbstractObjectRestController {
/**
*
* @REST\Post("/certificates/download/{certificateId}")
* @throws Exception
*/
public function downloadAction(Request $request,$certificateId)
{
}
}
PHP bin/console debug:router
app_certificate_certificaterest_download POST ANY ANY /certificates/download/{certificateId} App\Controller\Certificate\CertificateRestController::downloadAction()
问题是,即使 CertificateRestController 扩展了 AbstractObjectRestController 并且显示了 CertificateRestController 中定义的路由,但没有注册来自父类 (AbstractObjectRestController) 的路由
config/services.yml:
parameters:
services:
# default configuration for services in *this* file
_defaults:
autowire: true
autoconfigure: true
public: false
App\Controller\:
resource: '../src/Controller'
tags: [ 'controller.service_arguments' ]
# Data fixtures
App\DataFixtures\:
resource: '../src/DataFixtures'
tags: [ 'doctrine.fixture.orm' ]
config/routes.yml:
Users:
type : rest
resource: "@Usersbundle/Resources/config/routing.yml"
OAuth:
type : rest
resource: "@OauthBundle/Resources/config/routing.yml"
奇怪的是,UsersBundle 和 OauthBundle 都有扩展 AbstractObjectRestController 的 rest 控制器(如上所述),并且 cgetAction 方法正在针对这些控制器注册
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)