首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FOSRestBundle : ParamFetcher错误

FOSRestBundle : ParamFetcher错误
EN

Stack Overflow用户
提问于 2018-02-10 16:43:58
回答 1查看 1.3K关注 0票数 2

我在我的项目中使用FOSRestBundle,我已经将这个路由配置为可以访问不同类型的数据:

代码语言:javascript
复制
```javascript

/**

代码语言: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'));
代码语言:javascript
复制
    $options = [
代码语言:javascript
复制
        'addProfilePicture' => true,
代码语言:javascript
复制
        'addCategories' => true,
代码语言:javascript
复制
    ];
代码语言:javascript
复制
    // Configure limit and order
代码语言:javascript
复制
    if($fetcher->get('limit') !== -1)
代码语言:javascript
复制
        $options['limit'] = $fetcher->get('limit');
代码语言:javascript
复制
    $options['offset'] = $fetcher->get('offset');
代码语言:javascript
复制
    // Configure order
代码语言:javascript
复制
    switch ($fetcher->get('orderBy')) {
代码语言:javascript
复制
        case 'score':
代码语言:javascript
复制
            $options['orderBy'] = 'score';
代码语言:javascript
复制
    }
代码语言:javascript
复制
    $rows = $em->getRepository(Celebrity::class)->findByCategories($categories_id, $options);
代码语言:javascript
复制
    return $rows;
代码语言:javascript
复制
}
代码语言:javascript
复制

但是,当我用Postman调用我的节点时,我有以下错误:

控制器和方法需要通过setController设置

错误来自于ParamFetcher,以及行

代码语言:javascript
复制
$categories_id = explode(',', $fetcher->get('categoriesId'));

你知道这个问题的由来吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-13 14:59:16

只需在Symfony的config.yml中启用param取取侦听器:

代码语言:javascript
复制
fos_rest:
    param_fetcher_listener: true
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48723114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档