簡體   English   中英

FOSRestBundle:ParamFetcher 錯誤

[英]FOSRestBundle : ParamFetcher error

我在我的項目中使用 FOSRestBundle 我已經配置了這個路由來訪問不同的數據 kinf :

``

   /**
     * @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'));

你知道這個問題的起源嗎:/?

只需在 Symfony 的 config.yml 中啟用參數提取器偵聽器:

fos_rest:
    param_fetcher_listener: true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM