我想从我的JS访问到FOSRESTBundle控制器的API路由。我使用的是FOSJSRoutingBundle,但路线不可见(我得到了&x 39;路线xxx不存在'错误。
这是来自我的控制器的动作:
namespace ApiBundle\Controller;
use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\Controller\Annotations\Get;
class AjaxController extends FOSRestController{
/**
* @Get("/someaction", name="someaction")
*/
public function someAction()
{
$response = 'some response';
$view = $this->view($response,200);
return $this->handleView($view);
}
}
可以通过curl请求访问此路由,也可以在JS文件中对其进行硬编码,但我不想对其进行硬编码。所以我在JS文件中尝试过这个(当然在安装JSRoutingBundle之后):
function prepareChart() {
$url = Routing.generate('someaction');
$.get( $url, function( data ) {
<do something>
}, "json" );
}
这是routing.yml条目:
ajax:
resource: "@ApiBundle/Controller/AjaxController.php"
prefix: /ajax/
type: rest
options:
expose: true
答案 0 :(得分:0)
我已经解决了这个问题--FOSRestBundle不支持'name'属性 - 我的控制器的路径是自动生成的,我必须通过执行php app / console debug从路由器中检索所有路由的名称:router in控制台。