【问题标题】:Symfony fosrestbundle url formmingSymfony fosrestbundle url 形成
【发布时间】:2016-09-18 19:06:36
【问题描述】:

我的路线文件看起来像

#routing.yml
user:
    type: rest
    resource:     api.user.controller
    name_prefix:  api_
loan:
    type: rest
    resource:     api.loan.controller
    name_prefix:  api_

Api方法定义为:

    /**
     * Get a single user.
     *
     * @ApiDoc(
     *   output = "AppBundle\Model\User",
     *   statusCodes = {
     *     200 = "Returned when successful",
     *     404 = "Returned when the user is not found"
     *   }
     * )
     *
     * @param int $id the user id
     *
     * @return array
     *
     * @throws NotFoundHttpException when user not exist
     */
    public function getUserAction($id)
    {
        $repo = $this->model->getRepository(User::class);
        $user = $repo->find($id);

        if (!$user instanceof User) {
            throw new NotFoundHttpException('User not found');
        }

        return $user;
    }

我正在获取网址:

api_get__user  GET   ANY   ANY   /api/{id}/user

想要拥有:/api/user/{id}

如何在不将@Route 添加到注释中的情况下解决此问题,因为我使用的是自动路由命名。

【问题讨论】:

    标签: php symfony fosrestbundle


    【解决方案1】:

    您可以在routing.yml 中使用“前缀”,而不是使用“name_prefix”。

    用方法

    public function getUserAction($id) {}
    

    还有MyBundle/Resources/config/routing.yml里面的配置:

    user.controller:
        type: rest
        resource: "@MyBundle/Controller/UserController.php"
        prefix: 'api'
    

    我得到了生成的路线:

    get_user GET ANY ANY /api/users/{id}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-22
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 2017-07-04
      • 2018-04-20
      相关资源
      最近更新 更多