Symfony2 FOSRestBundle:如何创建自定义GET方法

时间:2014-03-09 13:43:25

标签: rest symfony fosrestbundle

我已将FOSRestBundle配置如下:

fos_rest:
  param_fetcher_listener: true
  body_listener: true
  format_listener: true
  view:
    view_response_listener: 'force'
  routing_loader:
    default_format: json
    include_format: false

在我的班级中,如果像这样延伸

class PlayerController extends FOSRestController implements ClassResourceInterface

所以我能够构建像

这样的方法
/**
 * Get all players.
 *
 * @return array
 *
 * @Rest\View
 */
public function cgetAction()
{
    $players = $this->getDoctrine()
      ->getRepository('bbbFrontendBundle:Player')
      ->findAll();

    return array('players' => $players);
}

为我提供了一条路线get_players,我可以通过GET请求来回复所有玩家。

现在我的问题:我想提供一个searchAction($searchterm, $limit)方法来监听GET并通过给定searchterm的弹性搜索提供搜索结果。 我面临的问题是,所有自定义方法都自动与PATCH方法相关联。并且使用PATCH方法我无法提供参数并获得我想要的结果。如何实现我的方法来监听GET请求?

1 个答案:

答案 0 :(得分:2)

您可以使用自定义后缀定义cget操作。 例如:

public function cgetSearchAction()