我在我的项目中使用FOSRestBundle,我已经将这个路由配置为可以访问不同类型的数据:
```javascript/**
* @Rest\Get("")
*
* @Rest\QueryParam(
* name="categoriesId",
* requirements="[0-9a-zA-Z\- \/_:.,\s]",
* default="",
* description="The categories ids."
* )
* @Rest\QueryParam(
* name="orderBy",
* requirements="[a-zA-Z0-9]",
* default="score",
* description="The keyword to search for."
* )
* @Rest\QueryParam(
* name="order",
* requirements="asc|desc",
* default="desc",
* description="Sort order (asc or desc)"
* )
* @Rest\QueryParam(
* name="limit",
* requirements="\d+",
* default="-1",
* description="Max number of celebrities returned."
* )
* @Rest\QueryParam(
* name="offset",
* requirements="\d+",
* default="0",
* description="The offset"
* )
*
* @Rest\View(serializerEnableMaxDepthChecks=true)
* @param ParamFetcherInterface $fetcher
* @param EntityManagerInterface $em
* @return array
*/
public function getAction(ParamFetcherInterface $fetcher, EntityManagerInterface $em) {
// Get categories
$categories_id = explode(',', $fetcher->get('categoriesId')); $options = [ 'addProfilePicture' => true, 'addCategories' => true, ]; // Configure limit and order if($fetcher->get('limit') !== -1) $options['limit'] = $fetcher->get('limit'); $options['offset'] = $fetcher->get('offset'); // Configure order switch ($fetcher->get('orderBy')) { case 'score': $options['orderBy'] = 'score'; } $rows = $em->getRepository(Celebrity::class)->findByCategories($categories_id, $options); return $rows;}但是,当我用Postman调用我的节点时,我有以下错误:
控制器和方法需要通过setController设置
错误来自于ParamFetcher,以及行
$categories_id = explode(',', $fetcher->get('categoriesId'));你知道这个问题的由来吗?
发布于 2018-02-13 14:59:16
只需在Symfony的config.yml中启用param取取侦听器:
fos_rest:
param_fetcher_listener: truehttps://stackoverflow.com/questions/48723114
复制相似问题